昨天我发表了一个演讲,涉及使用消息队列的所有方面。 我以前曾写过“您可能不需要消息队列” –现在的结论有些细微差别,但我仍然坚持简单性的观点。
演讲探讨了使用消息队列的各种好处和用例,并讨论了典型“消息队列代理”体系结构的替代方案。 幻灯片在这里可用
我建议的一种可能很奇怪的方法是使用分布式锁(例如,使用Hazelcast)进行分布式批处理-您锁定特定的ID(可能是组织ID /客户ID,而不是单个记录ID),从而允许多个处理器在其中运行并行,而不会踩到对方的脚趾(一个节点选择第一个条目,另一个节点尝试第一个,但是失败,然后选择第二个)。
我错过了像RabbitMQ这样的经纪人受益的东西,就是可用的工具–您可以非常轻松地监视和调试队列。
我无法在任何概念上详细关注-例如无代理如何工作, 如何在多个数据中心(可用区)中部署代理(例如RabbitMQ) ,或者akka(和akka集群)如何适合“消息队列”环境。 但是,我希望它是一个很好的概述,使每个人都能清楚了解这些选项,然后他们可以对这些选项进行更详细的分析和评估。
我将用幻灯片中的Dijkstra报价结束:
简单性是可靠性的前提
翻译自: https://www.javacodegeeks.com/2017/05/overview-message-queues-slides.html