三 rabbitmq发布确认+集群+其他高级( 七 )


10.2.2. 搭建步骤
1.启动三台集群节点
2.随便找一个节点添加
3.在 node1 上创建一个队列发送一条消息,队列存在镜像队列
4.停掉 node1 之后发现 node2 成为镜像队列
5.就算整个集群只剩下一台机器了 依然能消费队列里面的消息,说明队列里面的消息被镜像队列传递到相应机器里面了
10.3. + 实现高可用负载均衡 10.3.1. 整体架构图
10.3.2.实现负载均衡
提供高可用性、负载均衡及基于TCP HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,包括 ,, ,在内的多家知名互联网公司在使用 。实现了一种事件驱动、单一进程模型,此模型支持非常大的井发连接数 。扩展 nginx,lvs,
之间的区别:
10.3.3. 搭建步骤
1.下载 (在 node1 和 node2)
yum -y install haproxy
2.修改 node1 和 node2 的 .cfg
vim /etc/haproxy/haproxy.cfg
需要修改红色 IP 为当前机器 IP
3.在两台节点启动
haproxy -f /etc/haproxy/haproxy.cfgps -ef | grep haproxy
4.访问地址
:8888/stats
10.3.4.实现双机(主备)热备
试想如果前面配置的主机突然宕机或者网卡失效,那么虽然集群没有任何故障但是对于外界的客户端来说所有的连接都会被断开结果将是灾难性的,为了确保负载均衡服务的可靠性同样显得十分重要,这里就要引入它能够通过自身健康检查、资源接管功能做高可用(双机热备),实现 故障转移.
10.3.5. 搭建步骤
yum -y install keepalived
vim /etc//.conf
把资料里面的 .conf 修改之后替换
需要修改 的 ,如:nodeB
其次要修改中 state为"";
最后要将 设置为小于 100 的值
(为了防止服务挂掉之后还在正常工作而没有切换到上,所以这里需要编写一个脚本来检测务的状态,当服务挂掉之后该脚本会自动重启 的服务,如果不成功则关闭服务,这样便可以切换到继续工作)vim /etc//.sh(可以直接上传文件)修改权限 chmod 777 /etc//.sh
systemctl start keepalived
tail -f /var/log/messages -n 200
ip add show
systemctl stop keepalived
10.4.10.4.1. 使用它的原因
( 北京),( 深圳)彼此之间相距甚远,网络延迟是一个不得不面对的问题 。有一个在北京的业务( 北京) 需要连接( 北京),向其中的交换器发送消息,此时的网络延迟很小,( 北京)可以迅速将消息发送至中,就算在开启了机制或者事务机制的情 况下,也可以迅速收到确认信息 。此时又有个在深圳的业务( 深圳)需要向发送消息,那 么( 深圳) ( 北京)之间有很大的网络延迟,( 深圳) 将发送消息至会经历一定的延迟,尤其是在开启了机制或者事务机制的情况下,( 深圳) 会等待很长的延迟时间来接收( 北京)的确认信息,进而必然造成这条发送线程的性能降低,甚至造成一定程度上的阻塞 。将业务( 深圳)部署到北京的机房可以解决这个问题,但是如果( 深圳)调用的另些服务都部署在深圳,那么又会引发新的时延问题,总不见得将所有业务全部部署在一个机房,那么容灾又何以实现? 这里使用插件就可以很好地解决这个问题
10.4.2. 搭建步骤
1.需要保证每台节点单独运行