网站建设设计官网,外贸双语网站源码,wordpress 更换谷歌,在建设厅网站上下载资质标准先安装Docker
Centos7离线安装Docker
华为云arm架构安装Docker
RabbitMQ集群模式介绍
RabbitMQ集群搭建和测试总结_亲测
RabbitMQ 有三种模式#xff1a;单机模式#xff0c;普通集群模式#xff0c;镜像集群模式。单机模式即单独运行一个 rabbitmq 实例#xff0c;而…先安装Docker
Centos7离线安装Docker
华为云arm架构安装Docker
RabbitMQ集群模式介绍
RabbitMQ集群搭建和测试总结_亲测
RabbitMQ 有三种模式单机模式普通集群模式镜像集群模式。单机模式即单独运行一个 rabbitmq 实例而集群模式需要创建多个 rabbitmq实例
第一种 普通集群模式rabbitmq集群与其他集群有些不同rabbitmq集群同步指的是复制队列元数据信息的同步即同步的是数据存储信息消息的存放只会存储在创建该消息队列的那个节点上。并非在节点上都存储一个完整的数据。在通过非数据所在节点获取数据时通过元数据信息路由转发到存储数据节点上从而得到数据 。
第二种 镜像集群模式与普通集群模式区别 主要是消息实体会主动在镜像节点间同步数据而不是只存储数据元信息。 故普通集群模式 但凡数据节点挂了容易造成数据丢失但镜像集群模式可以保证集群只要不全部挂掉数据就不会丢失当相对于性能来说镜像集群模式会比普通集群模式多出消耗数据的传输。故取决于业务场景进行取舍。
Docker搭建普通集群模式
在一台机器上使用Docker搭建RabbitMQ集群
#拉取镜像
docker pull rabbitmq:3.8.2-management#启动三个容器
docker run -d --hostname rabbitmq01 --name rabbitmqCluster01 -p 15672:15672 -p 5672:5672 -p 1883:1883 -e RABBITMQ_ERLANG_COOKIErabbitmqCookie rabbitmq:3.8.2-managementdocker run -d --hostname rabbitmq02 --name rabbitmqCluster02 -p 15673:15672 -p 5673:5672 -p 1884:1883 -e RABBITMQ_ERLANG_COOKIErabbitmqCookie --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.8.2-managementdocker run -d --hostname rabbitmq03 --name rabbitmqCluster03 -p 15674:15672 -p 5674:5672 -p 1885:1883 -e RABBITMQ_ERLANG_COOKIErabbitmqCookie --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02 rabbitmq:3.8.2-management主要参数 -p 15672:15672 management 界面管理访问端口 -p 5672:5672 amqp 访问端口 -p 1883:1883 mqtt访问端口 也可以把容器里的数据共享到宿主机上 -v /home/soft/rabbitmqcluster/rabbitmq01:/var/lib/rabbitmq –link 容器之间连接 Erlang Cookie 值必须相同也就是一个集群内 RABBITMQ_ERLANG_COOKIE 参数的值必须相同。因为 RabbitMQ 是用Erlang实现的Erlang Cookie 相当于不同节点之间通讯的密钥Erlang节点通过交换 Erlang Cookie 获得认证。
访问:查看是否正常启动成功 http://localhost:15672/ http://localhost:15673/ http://localhost:15674/ 账号/密码guest / guest
容器节点加入集群
#进入第一个容器
docker exec -it rabbitmqCluster01 bashrabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit#进入第二个容器
docker exec -it rabbitmqCluster02 bash
rabbitmqctl stop_app
rabbitmqctl reset#加入集群
rabbitmqctl join_cluster --ram rabbitrabbitmq01
rabbitmqctl start_app
exit#进入第三个容器
docker exec -it rabbitmqCluster03 bash
rabbitmqctl stop_app
rabbitmqctl reset#加入集群
rabbitmqctl join_cluster --ram rabbitrabbitmq01
rabbitmqctl start_app
exit主要参数 –ram 表示设置为内存节点忽略此参数默认为磁盘节点。该配置启动了3个节点1个磁盘节点和2个内存节点。
设置好之后使用任意容器,比如:http://localhost:15672/ 进行访问默认账号密码guest/guest 可以看到已经有多个节点了。集群搭建成功了
镜像集群模式
镜像集群模式是基于普通集群模式上配置策略来实现
1、策略policy概念
使用RabbitMQ镜像功能需要基于RabbitMQ策略来实现策略policy是用来控制和修改群集范围的某个vhost队列行为和Exchange行为。策略policy就是要设置哪些Exchange或者queue的数据需要复制、同步以及如何复制同步。
为了使队列成为镜像队列需要创建一个策略来匹配队列设置策略有两个键“ha-mode和 ha-params可选”。ha-params根据ha-mode设置不同的值下表说明这些key的选项。 2、添加策略
登录rabbitmq管理页面 —— Admin —— Policies —— Add / update a policy name随便取策略名称 Pattern^ 匹配符只有一个^代表匹配所有 Definitionha-modeall 为匹配类型分为3种模式all表示所有的queue
或者使用如下命令在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”开头的队列名称我们配置时使用的应用于所有队列所以表达式为“^”3、查看效果
此策略会同步所在同一VHost中的交换器和队列数据。设置好policy之后使用 http://localhost:15672 再次进行访问可以看到队列镜像同步。 spring cloud stream rabbitmq 使用集群方式
但每次连第一台,没有负载均衡,要用nginx等负载均衡一下
如果停止第一台,会自动连接到第二台上去处理addresses: 127.0.0.1:5672,127.0.0.1:5673,127.0.0.1:5674
username: admin
password: admin
virtual-host: /参考链接: https://www.cnblogs.com/alan6/p/11691229.html https://blog.csdn.net/belonghuang157405/article/details/83540148