我们有两个队列服务器,都连接到应用程序。 到目前为止,服务器 1 接收所有排队的作业并对其进行了处理。我想设置一个集群,以便负载分布在 2 台服务器上。任何人都可以建议如何设置集群。
谢谢。
Beanstalkd 不提供此功能。
替代方案是:
- 您设置了一个软分片以将请求路由到队列 A 或 B
- 您可以使用 Redis Queue、Cloud Pub/Sub 等替代方案,来自 Google Cloud Platform
单个实例设置中的 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/
因此,垂直缩放通常就足够了。
然而,问题是当单个 betalkd 实例消失时的可用性。
你可以签出 coolbeans,这个项目是 alpha 版。它提供了一个复制的豆柄 https://github.com/1xyz/coolbeans