RocketMQ入门02:消息队列的本质与演进

引言:从一个简单的队列开始 在计算机科学中,队列(Queue)是最基础的数据结构之一。它遵循 FIFO(First In First Out)原则,就像排队买票一样,先来的先处理。 // 最简单的队列实现 public class SimpleQueue<T> { private LinkedList<T> items = new LinkedList<>(); public void enqueue(T item) { items.addLast(item); // 入队 } public T dequeue() { return items.removeFirst(); // 出队 } } 这个简单的数据结构,竟然是现代消息队列的起源。让我们看看它是如何一步步演进的。 一、演进阶段1:进程内队列 1.1 最初的需求 在单进程程序中,当我们需要解耦生产者和消费者时,最简单的方式就是使用内存队列: // 生产者-消费者模式 public class InMemoryMessageQueue { private final BlockingQueue<Message> queue = new LinkedBlockingQueue<>(); // 生产者线程 class Producer extends Thread { public void run() { while (true) { Message msg = generateMessage(); queue.put(msg); // 阻塞式入队 } } } // 消费者线程 class Consumer extends Thread { public void run() { while (true) { Message msg = queue.take(); // 阻塞式出队 processMessage(msg); } } } } 特点: ...

2025-11-13 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...