如何为 beanstalkd 设置队列服务器集群?
How to setup a clustering of a queue servers for beanstalkd?
我们有两个队列服务器,都附加到应用程序。到目前为止,服务器 1 接收并处理了所有排队的作业。我想设置一个集群,以便负载分布在 2 个服务器上。任何人都可以建议如何设置集群。
谢谢。
Beanstalkd 不提供此功能。
备选方案是:
- 您设置了软分片以将请求路由到队列 A 或 B
- 您可以使用 Redis 队列、来自 Google Cloud Platform
的 Cloud Pub/Sub 等替代方案
单个实例设置中的 Beanstalkd 可以支持多个 TCP 连接,并且通常优于 Redis。以下是一些基准,但基准是主观的。
基准参考
- https://ph4r05.deadcode.me/blog/2017/12/16/laravel-queueing-benchmark.html
- https://adam.herokuapp.com/past/2010/4/24/beanstalk_a_simple_and_fast_queueing_backend/
所以垂直缩放通常就足够了。
但是,当单个 beanstalkd 实例消失时,问题是可用性。
您可以查看 coolbeans,此项目处于 alpha 阶段。它提供了一个复制的 beanstalkd https://github.com/1xyz/coolbeans
我们有两个队列服务器,都附加到应用程序。到目前为止,服务器 1 接收并处理了所有排队的作业。我想设置一个集群,以便负载分布在 2 个服务器上。任何人都可以建议如何设置集群。
谢谢。
Beanstalkd 不提供此功能。
备选方案是:
- 您设置了软分片以将请求路由到队列 A 或 B
- 您可以使用 Redis 队列、来自 Google Cloud Platform 的 Cloud Pub/Sub 等替代方案
单个实例设置中的 Beanstalkd 可以支持多个 TCP 连接,并且通常优于 Redis。以下是一些基准,但基准是主观的。
基准参考
- https://ph4r05.deadcode.me/blog/2017/12/16/laravel-queueing-benchmark.html
- https://adam.herokuapp.com/past/2010/4/24/beanstalk_a_simple_and_fast_queueing_backend/
所以垂直缩放通常就足够了。
但是,当单个 beanstalkd 实例消失时,问题是可用性。
您可以查看 coolbeans,此项目处于 alpha 阶段。它提供了一个复制的 beanstalkd https://github.com/1xyz/coolbeans