我有几个服务器产生的xml文件蟒蛇和其它一些服务器上,使用这些xml使用Java。我只是在最近看到和JMS 今后 并决定试图使用它以传xml文件。

所以我设置了说守护程序对消费者的服务器和想我会实施的一些自行车上的方法产生分发xml均匀地分布的消费者。

Python  -----------------------------> ActiveMQ ---> Java
        \                           /
         \                         /
          ---------------------------> ActiveMQ ---> Java
                                 /  /
Python  ----------------------------

用于测试,我跑了一个制作人和一个消费者,看着的结果。

我惊讶的是,的信息的生产者分布在所有今后的服务器上的网络。因为我只跑了一个消费者,它只收到的xml,有的说守护在该机,其余的xml们耐心地等待着对其他来说程序的其他机。

Python  -----------------------------> ActiveMQ ---> Java (work)
                                          |
                                          |
                                       ActiveMQ (xmls piling up)

编辑:这不是实际发生了什么,对不起。见下文的详细信息

现在,我不是在抱怨,因为这是我想要的不管怎样,但我有点困惑:什么是适当的方式来实施这个多的队列,我以后?

我应该设置今后守护精灵在我的制片机以及发送xml到localhost ActiveMQs和信任的自动发现,获得xml于消费者?

Python ---> ActiveMQ ------------------------------ ActiveMQ ---> Java
                |                                      |
                |                                      |
                |                                -- ActiveMQ ---> Java
                |                               |  
Python ---> ActiveMQ----------------------------

我应该坚持到我原来的计划和循环信息的消费者机,就是安全的?

或是有一个API我应该使用那个隐藏的那些详情来自我的过程?

顺便说一句,生产者python过程中使用跺和消费者java使用JMS。

我道歉如果你的眼睛有伤害我蹩脚的ASCII码艺术,我不知道如果我现在足够清楚与刚才的话。

编辑

显然,当我运行"一个制作人和一名消费者"我没注意到的其他消费者已经运行。他们只是没有做任何有用的xml他们处理。这就是为什么我看见的部分结果。

在阅读多一点,并试验一点点,我想出如下:

默认情况下,今后将会自动发现的其他来说实在的本地网络,并创建一个存储和转发 网络的经纪人.这意味着生产商可以发布的xml到任何实例说,他们会找到他们的方式向消费者倾听在其他实例说,在相同的网络。

注意,该文件要求,自动发现未建议用于生产设置。

所接受的回答下面仍然是正确的,虽然。最简单的方式使用来说是的只是使用一个或两个服务器作为"排队服务器"。然而,我选择了去与我原来的计划,因为我 想想 它将减少交通网络(以一个中间服务,xml有进入它和它再)。

有帮助吗?

解决方案

Itsadok,我想你可能没有正确考虑使用消息的。

有一个MOM实例(是否ActiveMQ的,RabbitMQ的,或任何其他MOM经纪人)在一个每消费情况并没有真正意义的概念。相反,这是最好的想你MOM经纪人作为消息的路由器。

在这种情况下,你将有一个ActiveMQ代理实例(这可能是分片或以其他方式缩放如果你有结垢问题,或复制如果你有房委会考虑),所有生产者和消费者都连接到。然后,所有的XML去同一个代理实例,并且所有的消费者从同一个经纪人的实例阅读。在这种情况下,代理将确定该消息应该去基于它使用任何启发式其中消费者。

这也意味着,你可以添加和删除生产者和消费者动态,并没有什么都没有改变:它们都连接到同一个经纪人,所以你可以添加和删除生产者和消费者作为您的负载变化或系统发生故障

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top