我刚刚为django应用程序构建了我的第一个可扩展后端,但是我将消息队列服务(RabbitMQ)放在负载均衡器机器上。我能够用最多500个并发用户围攻我的一些API路由而没有严重的时间不足但是我想知道我是否通过将MQ服务放在其他地方来获得更好的性能。
我现在的设置:
应用请求>负载均衡器(nginx,rabbitmq)>工人,2在使用(gunicorn /芹菜)> db(postgres)
所以我目前在VPC中连接了4个AWS EC2实例(所有m3.medium)为我做这一切。在工作节点上做兔子是没有意义的,所以我只想弄清楚人们做什么。
我也很好奇如何最好地配置gunicorn,但是从我的搜索来看,除了数量/类型的实际工作人员之外,似乎还有很多东西要搞乱。对于我的AWS EC2实例(m3.medium),只有3 /同步(使用异步工作程序的性能下降)。
答案 0 :(得分:0)
服务器和应用程序的设置取决于服务器的负载和容量。
使用负载均衡器的位置>应用程序/工作服务器> DB服务器 我们有多个不同的服务器,其中运行着rabbitmq,redis等。
如果您的服务器负载均衡器服务器可以处理它旁边的rabbitmq,我认为没有理由改变它。 很难告诉你什么是最好的'方式是。
我认为如果您当前的解决方案运行没有任何问题,我会保留它,直到您遇到问题(密切关注您的日志等)并根据该信息做出决定。