消息队列
RabbitMQ安装
RabbitMQ常用命令
RabbitMQ集群
RabbitQM集群(docker)
kafka操作
kafka集群搭建
kafka配置问题
本文档使用MrDoc发布
返回首页
-
+
RabbitQM集群(docker)
2023年5月31日 09:51
admin
##资料 #单机多节点 https://blog.csdn.net/ChengQinHong/article/details/127391332 #多机多节点 https://www.jianshu.com/p/8e9e717c1538 --- ##普通集群模操作 ###拉取镜像 根据项目要求看是否需要特定版本,则在最后加上版本号。 docker pull rabbitmq --- ###创建容器 --- ####节点一 docker run -tid --restart=always -d \ --add-host="rabbitmq02":172.16.2.82 \ --hostname rabbitmq01 \ --name rabbitmq01 \ -e RABBITMQ_DEFAULT_USER=guest \ -e RABBITMQ_DEFAULT_PASS=guest \ -p 15672:15672 \ -p 5672:5672 \ -p 25672:25672 \ -p 61613:61613 \ -p 4369:4369 \ -e RABBITMQ_ERLANG_COOKIE='test9cloud@' \ rabbitmq:3.7.14-management --- ####注意: --add-host:添加其它节点的host信息 --hostname:为本机的hostname,其它节点加入时要使用,要与其它节点--add-host:的信息一致 --- ####节点二 docker run -tid --restart=always -d \ --add-host="rabbitmq01":172.16.2.82 \ --hostname rabbitmq02 \ --name rabbitmq02 \ -e RABBITMQ_DEFAULT_USER=guest \ -e RABBITMQ_DEFAULT_PASS=guest \ -p 15672:15672 \ -p 5672:5672 \ -p 25672:25672 \ -p 61613:61613 \ -p 4369:4369 \ -e RABBITMQ_ERLANG_COOKIE='test9cloud@' \ rabbitmq:3.7.14-management --- ####注意: --add-host:添加其它节点的host信息 --hostname:为本机的hostname,其它节点加入时要使用,要与其它节点--add-host:的信息一致 --- ###加入集群 ####节点一 docker exec rabbitmq01 rabbitmqctl stop_app; docker exec rabbitmq01 rabbitmqctl reset; docker exec rabbitmq01 rabbitmqctl start_app; --- ####节点二 docker exec rabbitmq02 rabbitmqctl stop_app; docker exec rabbitmq02 rabbitmqctl reset; docker exec rabbitmq02 rabbitmqctl join_cluster rabbit@rabbitmq01; #docker exec rabbitmq02 rabbitmqctl join_cluster --ram rabbit@rabbitmq01; #--ram为内存节点 默认为磁盘节点 docker exec rabbitmq02 rabbitmqctl start_app; --- ![](/media//202305/2023-05-31123013081151.png) --- ####注意: 若搭建的集群需要用到延时队列,则加入集群的节点类型需要为磁盘节点,不能以内存节点的形式加入集群,否则无法启动节点。 --- ##镜像集群模式介绍和操作 ####注意:镜像集群模式是基于普通集群模式上配置策略来实现。 --- ####策略policy概念 使用RabbitMQ镜像功能,需要基于RabbitMQ策略来实现,策略policy是用来控制和修改群集范围的某个vhost队列行为和Exchange行为。策略policy就是要设置哪些Exchange或者queue的数据需要复制、同步,以及如何复制同步。 为了使队列成为镜像队列,需要创建一个策略来匹配队列,设置策略有两个键“ha-mode和 ha-params(可选)”。ha-params根据ha-mode设置不同的值,下表说明这些key的选项。 --- ###A方案操作 --- ![](/media//202305/2023-05-31123324612917.png) --- ###B方案操作 --- ####使用如下命令:在cluster中任意节点启用策略,策略会自动同步到集群节点 #进入容器 docker exec -it rabbitmqCluster01 bash #创建策略 rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' rabbitmqctl set_policy -p / ha-all "^" '{"ha-mode":"all"}' rabbitmqctl set_policy -p / ha-all "^message" '{"ha-mode":"all"}' #注意:“^message” 这个规则要根据自己修改,这个是指同步“message”开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为“^” ![](/media//202305/2023-05-31123747569275.png)
分享到: