我正在阅读有关RabbitMQ的tutorial。在描述RabbitMQ中的队列时,它表示以下内容:
队列仅受主机内存和磁盘限制的约束,它是 本质上是一个很大的消息缓冲区。
在这种情况下,什么是消息缓冲区?是通用的数据结构吗?
答案 0 :(得分:1)
在这种情况下,什么是消息缓冲区?是通用的数据结构吗?
计算机科学中的buffer通常是指一种数据结构或存储区域,用于在数据从一个位置移动到另一位置时临时保存数据。
您会发现在整个硬件/软件堆栈的许多抽象级别上都有广泛的缓冲区。它们在与硬件设备的交互点(例如,从软件和外围设备读取/写入数据)以及在向/从网络套接字写入数据的联网代码中特别常见。在需要解耦生产者和使用者(例如,不同的进程可能读取/写入缓冲的数据,或者以不同的速度进行读取/写入)或在资源的用户必须在服务之前必须排队的情况下,它们特别有用。
在RabbitMQ上下文中,“消息缓冲区”是指Rabbit的消息队列数据结构。队列是一个内存区域,由磁盘上的消息的持久副本支持,RabbitMQ在等待消费者读取队列并处理消息的同时,存储生产者 1 提交的消息。 RabbitMQ代理充当中介,使生产者和消费者过程相互分离。
1 当然,RabbitMQ为用户提供了用于提交消息的高级路由逻辑。用户提交的消息可以直接提交到队列(缓冲区)进行传递,也可以遍历更复杂的路由集,这些路由将消息动态传递到零个或多个队列以传递给多个使用者进程。 >