2011-02-11 26 views
2

我想了解更多关于编程消息应用程序和使用消息队列。像qpid,亚马逊队列等东西你能指点我的一些应用程序(最好是C++,如果可能的话,开源),所以我可以了解更多。使用消息队列的应用程序的好例子

另外,你能告诉我一般的指导方针,可以用来决定是否不使用消息队列。我对这种仅仅为了“冷静”的因素而感到有趣,但我认为这对未来可能是有益的。

回答

5

RabbitMQ是我最熟悉的Message Queue。它像qpid一样实现AMQP。 AMQP是一种广泛接受的线路协议,并且有许多客户端库可用,例如C++,Java,Ruby,.Net,Python等。

如果分布式服务是片状的并且不总是在线,那么可以使用岩石固定的消息队列来保存消息。这些消息随后在分布式服务恢复时发布。

如果分布式服务的延迟时间较短,并且客户端服务生成的分布式服务所能处理的请求量更多,则队列将保留这些消息,直到分布式服务可以处理它们,同时允许客户端进行不受限制的处理。

如果需要将请求分发到多个服务,交换机将会处理重要的细节,例如将消息一次传递给每个分布式服务一次。

当您需要对远程服务进行同步调用时,我不推荐使用消息队列。消息队列本质上是异步的。

+0

非常好的解释。谢谢。 – Rodney 2011-02-11 21:57:42

0

不是编程语言,但是当您使用消息队列编程时,它是一个有用的工具,它是Promela/Spin。它旨在识别可能由分布式系统产生的死锁或其他并发问题。当然,看看它可以帮助识别的问题会让你对你可能遇到的问题有所了解。

0

不确定它写的是什么,但Eclipse IDE似乎有某种消息队列系统。每当它忙(阅读,滞后...很多),你会看到一条消息,说“在用户操作之前执行空白”。 Eclipse是开源的。我不知道在哪里下载源代码..但我相信它随安装 - http://www.eclipse.org/downloads/。最新版本是3.6(helios)