我曾经使用过消息队列,但从未想过,它们使用什么协议进行通信?基本上它们都支持阻塞方法,例如
// sleeps the thread until any message is available
Object message = queueService.take()
但我从来没有想过这是如何明智地实现客户端服务器(MOM)的。
从我读到的内容来看,
RMI
几乎已经死了(并且不确定它是否支持阻塞方法)那么现代 MQ 使用什么来通信?
是否有任何书籍/教程/课程来实现自己的队列或只是详细描述这些东西?
感谢您的解答!
一些使用专有协议,另一些使用AMQP或MQTT等多种标准之一。结果是给定的客户端只能通过精心设计连接到给定的消息代理;你不应该假设客户可以自由混合和匹配。
协议的多样性部分是由于历史原因,因为各个供应商独立工作来构建相互竞争的面向消息的中间件产品。但今天,仍然有充分的理由支持不同的协议。例如,MQTT 是轻量级的,非常适合嵌入式设备,而 AMQP 则更适合企业应用。