我正在尝试扩展我的Rabbitmq服务,以提高服务的性能和吞吐量。
我找到了一个docker-compose文件,它运行了Rabbitmq的3个实例,并将它们连接到一个集群中。
version: '3'
services:
rabbitmq1:
image: rabbitmq:3-management
hostname: rabbitmq1
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
- RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
- RABBITMQ_DEFAULT_VHOST=${RABBITMQ_DEFAULT_VHOST}
rabbitmq2:
image: rabbitmq:3-management
hostname: rabbitmq2
depends_on:
- rabbitmq1
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
volumes:
- ./cluster-entrypoint.sh:/usr/local/bin/cluster-entrypoint.sh
entrypoint: /usr/local/bin/cluster-entrypoint.sh
rabbitmq3:
image: rabbitmq:3-management
hostname: rabbitmq3
depends_on:
- rabbitmq1
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
volumes:
- ./cluster-entrypoint.sh:/usr/local/bin/cluster-entrypoint.sh
entrypoint: /usr/local/bin/cluster-entrypoint.sh
haproxy:
image: haproxy:1.7
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
depends_on:
- rabbitmq1
- rabbitmq2
- rabbitmq3
ports:
- 15672:15672
- 5672:5672据我所知,Rabbitmq不是单线程的,所以基本上它的一个实例应该能够使用服务器的所有CPU能力。我说的对吗?
我想知道在一台服务器上运行多个Rabbit实例对我有什么好处吗?
发布于 2020-07-03 12:12:41
我猜运行多个RabbitMQ实例可能没有任何好处。RabbitMQ中有多个队列和交换,可以解决大多数问题。
在compose文件中提到的启动多个实例的一个原因是拥有一个RabbitMQ节点集群,该集群提供集群和队列镜像、高可用性等。在RabbitMQ 3.8中,您可以使用quorum queues。
https://stackoverflow.com/questions/62674403
复制相似问题