分布式集群的最佳工作队列服务

Posted

技术标签:

【中文标题】分布式集群的最佳工作队列服务【英文标题】:Best Work Queue service for distributed clusters 【发布时间】:2010-05-27 07:45:49 【问题描述】:

我需要一个简单的工作队列类型系统来进行异步任务管理。

我看过 beanstalkd 和 gearman。然而,这两个似乎都假设客户端和队列服务器在同一个网络上,因此它们之间总会有一个可靠的网络。

我需要一个能够支持客户端和服务器位于世界不同地方,并能够管理集群之间网络连接的暂时丢失。

理想情况下,这将以这样一种方式工作,即我将作业发布到尝试将其发送到主队列服务器的本地代理。如果没有网络连接,它会稍后再试,但不会丢失工作或延迟客户端。

有什么建议吗?

【问题讨论】:

【参考方案1】:

试试 ActiveMQ。客户端库(无论是发送还是使用消息)都足够智能,可以在网络中断、服务器重新启动等情况下自动重新连接。对我来说,它在我的 LAN 和几台通过 *** 连接的机器上运行良好。我使用 Apache NMS 作为 .NET 和单个 ActiveMQ 代理实例的客户端库。

它还具有 HTTP 支持,但是我还没有尝试过,不知道重新连接支持等是否相同。

还支持为集群和负载平衡运行多个代理(服务器),称为“代理网络”。经纪人甚至可以坐在防火墙后面。如果您在多个地方拥有大量生产者/消费者,这可能是您的一种选择。

【讨论】:

以上是关于分布式集群的最佳工作队列服务的主要内容,如果未能解决你的问题,请参考以下文章

kafka分布式消息队列介绍以及集群安装

分布式通信技术之消息队列

分布式队列ZooKeeper的实现

MySQL 分布式集群探索-MGR-组复制性能

CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看

6.《持续演进的Cloud Native 云原生架构下微服务最佳实践》读书笔记-第三章基于Codis实现Redis分布式缓存集群