【发布时间】:2011-02-12 05:31:26
【问题描述】:
我想了解有关编程消息传递应用程序和使用消息队列的更多信息。诸如 qpid、Amazon Queues 等之类的东西。你能指点我一些应用程序吗(最好是 C++,如果可能的话是开源的),以便我了解更多信息。
另外,您能否告诉我决定是否不使用消息队列的一般准则。我对这方面的学习很感兴趣,只是因为“酷”因素,但我认为这对我将来可能会有所帮助。
【问题讨论】:
标签: message-queue
我想了解有关编程消息传递应用程序和使用消息队列的更多信息。诸如 qpid、Amazon Queues 等之类的东西。你能指点我一些应用程序吗(最好是 C++,如果可能的话是开源的),以便我了解更多信息。
另外,您能否告诉我决定是否不使用消息队列的一般准则。我对这方面的学习很感兴趣,只是因为“酷”因素,但我认为这对我将来可能会有所帮助。
【问题讨论】:
标签: message-queue
RabbitMQ 是我最熟悉的消息队列。它像 qpid 一样实现 AMQP。 AMQP 是一种被广泛接受的有线协议,并且有许多可用的客户端库,例如 C++、Java、Ruby、.Net、Python 等。
如果分布式服务不稳定且并不总是在线,您可以使用坚如磐石的消息队列来持久化消息。然后在分布式服务恢复运行时传递消息。
如果分布式服务具有低延迟并且客户端服务生成的请求超出分布式服务可以处理的数量,则队列将保存消息,直到分布式服务可以处理它们,同时允许客户端不受限制地处理。
如果需要将请求分发到多个服务,交换器将处理重要的细节,例如将消息传递给每个分布式服务一次且仅一次。
当您需要同步调用远程服务时,我不建议您使用消息队列。消息队列本质上是异步的。
【讨论】:
不确定它是用什么写的,但 Eclipse IDE 似乎有某种消息队列系统。每当它忙碌(阅读,滞后......很多)时,您都会看到一条消息“在用户操作之前执行 blank”。 Eclipse 是开源的。我不知道在哪里下载源代码.. 但我相信它是安装附带的 - http://www.eclipse.org/downloads/。最新的是 3.6 (helios)
【讨论】: