【发布时间】:2012-12-05 03:51:30
【问题描述】:
我正在使用消息队列开发分布式生产者/消费者系统。我对并行化感兴趣的部分是它的消费者方面,我对此感到满意。
但是,我不确定如何处理制作人。我一次只需要一个生产者运行,因为我的系统生产部分的负载不是太高,但我想要一种可靠的方式来管理它,比如启动、停止、重新启动,主要是监控它,以便如果生产者主机出现故障,另一台可以接机。
如果它有帮助,我对我的消费者算法感到满意,即排队作业的算法,因为它可以容错一段时间停机并拾取停机期间发生的事情。
我确信有工具或至少已知的模式可以做到这一点,而不是重新发明轮子。
我使用的是rabbitmq,但可以使用activemq,如果需要,甚至可以重构为storm或类似的东西,我的代码目前并不复杂。
【问题讨论】:
-
有些是我赞成并从其中许多人那里学到的好答案,但不幸的是,它们都不是“最佳”答案,因此我可以自信地将其标记为对其他用户有效马上来找到我所暴露的问题的解决方案。 (我没有理由不接受答案,是免费的:))
-
另外,您可能希望将此问题重新标记为更合适的内容 - 可能与监控相关,因为它与您的排队技术没有直接关系
-
我接受了几个答案,感谢您的提示。对标签有什么建议吗?我对此不了解技术,只是选择这两个来吸引有希望以前经验的人,而不仅仅是理论。
-
你能详细说明一下你的架构吗?例如,为什么要创建任意数量的生产者?从队列中并行消费正是消息传递的目的;但是,并行“生产”没有多大意义。这个想法是你有一个未知的(但有点可预测)数量的生产者,你的消费者应该能够处理生产者施加在他们身上的负载。
-
是的 mayer06,我一次只想要一个制作人。我正在寻找的是有一种可靠的方法来确保如果一个失败,另一个将开始自动生产。