我在Laravel项目中使用beanstalkd来处理队列中的作业。Beanstalkd正在本地运行。我想做的是在队列变大时添加一个或多个远程服务器来处理一些作业。我知道使用Laravel可以将作业发送到特定的远程连接,但这样我不知道发送作业之前每个服务器的负载情况。
我想知道beanstalkd是否支持在服务器之间进行负载平衡以及在远程作业失败时的错误处理等问题。
谢谢
我想知道beanstalkd是否支持在服务器之间进行负载平衡以及在远程作业失败时的错误处理等问题。
谢谢
Beanstalkd没有负载均衡功能。
您可以在负载均衡器上设置HAProxy,并注册安装了beanstalkd的多个服务器。然后,当您从Laravel代码发送作业时,您会发送到HAProxy,HAProxy会决定哪个子服务器放置作业,因为它知道负载和子系统是否存在故障。
在代码中只需要更改IP即可。 在您的基础设施中,您需要有一个已设置好一组Beanstalkd服务器的负载均衡器(HAProxy)。
通常我们有2台机器,它们配置如下:
- Machine 1: HAProxy, Apache, MySQL, Laravel, Beanstalkd
- Machine 2: MySQL, Laravel, Beanstalkd