我想了解有关编程消息传递应用程序和使用消息队列的更多信息。诸如qpid,Amazon Queues等等。你能指点我一些应用程序(如果可能的话,最好是C ++,开源),这样我就可以了解更多。
另外,您能否告诉我一个用于决定是否不使用消息队列的一般准则。我很有兴趣只是为了“酷”因素,但我认为这对我来说可能是有益的。
答案 0 :(得分:5)
RabbitMQ是我最熟悉的消息队列。它像qpid一样实现AMQP。 AMQP是一种广泛接受的有线协议,有许多可用的客户端库,如C ++,Java,Ruby,.Net,Python等。
如果分布式服务不稳定并且不总是在线,则可以使用坚如磐石的消息队列来保留消息。然后,当分布式服务恢复生命时,将传递消息。
如果分布式服务具有低延迟并且客户端服务生成的请求多于分布式服务可以处理的请求,则队列将保留消息,直到分布式服务可以处理它们,同时允许客户端处理不受禁止的。
如果需要将请求分发给多个服务,交换机将关注重要的细节,例如将消息一次性传递给每个分布式服务。
当您需要同步调用远程服务时,我不建议使用消息队列。消息队列本质上是异步的。
答案 1 :(得分:0)
当您使用消息队列进行编程时,不是编程语言,而是一个有用的工具Promela / Spin。它旨在识别可能由分布式系统引起的死锁或其他并发问题。当然,查看它可以帮助识别的那类问题可以让您了解可能遇到的问题类型。
答案 2 :(得分:0)
不确定它的内容是什么,但Eclipse IDE似乎有某种消息队列系统。每当它忙碌(阅读,滞后......很多)你会看到一条消息“在用户操作之前执行空白”。 Eclipse是开源的。我不确定在哪里下载源代码..但我相信它附带安装 - http://www.eclipse.org/downloads/。最新的是3.6(helios)