1

我正在阅读 ActiveMQ,这似乎是服务总线的一个很好的实现,生产者可以发布消息,其他进程可以接收它们。

但是,在阅读文档时,看起来生产者在发送消息时必须提供“端点”。

我宁愿反过来:我的生产者发布事件“导入作业开始”、“导入作业完成”等,任何对某些事件类别感兴趣的消费者都可以订阅和接收这些事件。但是,消费者不应消费该事件,因为它不再发送给其他订阅者。

拥有这种属性的最佳产品是什么?

约束: - 它应该至少有 .Net 和 php 的接口 - 它应该跨机器边界工作

谢谢

4

3 回答 3

2

我认为您当前正在发布到一个队列,这通常意味着 1 个消费者会消费消息并处理事件。如果您需要有超过 1 个消费者接收事件,您应该使用主题。

使用主题时,所有订阅的消费者都会收到您发布的事件。

看看这个:http ://activemq.apache.org/how-does-a-queue-compare-to-a-topic.html

于 2009-11-13T09:02:58.283 回答
0

不知道最好的,但我在像你这样的任务的项目中使用了D-Bus。检查它的文档。

对实现的引用:

D-Bus 的 C# 实现

PHP与DBus的绑定

我希望它会有所帮助。

于 2009-11-13T08:48:41.657 回答
0

如果您对将服务托管在云上感到满意,Microsoft 的 ServiceBus通过其主题/订阅模型启用该场景。在此模型下,您的生产者向主题(一个用于所有实际目的的队列)发送一条消息,任何订阅它的人都将获得该消息的副本。对于更高级的场景,您甚至可以创建规则和过滤器来定义哪些客户端获取哪些消息。为此,有 .NET 和 REST API。

您可以在此处查看有关功能的完整说明。该文档包含有关如何为此使用客户端库的示例代码。如果您需要对这些语言的支持,还有关于如何将 servicebus 与 Java 和 PHP 一起使用的示例

于 2011-10-10T19:34:16.277 回答