我是靠谱客的博主 尊敬毛衣,这篇文章主要介绍rabbitmq+keepalived+haproxy的部署rabbitmq+keepalived+haproxy的部署,现在分享给大家,希望可以做个参考。
rabbitmq+keepalived+haproxy的部署
生产者通过通道发送消息,经过keepalived的vip访问到haproxy负载均衡,在通过haproxy到达消息队列rabbitmq,这里创建了三个rabbitmq,最后在供消费者消费.
环境部署
搭建三个节点,创建三个rabbitmq节点,两台高可用,两台负载均衡.
一 部署rabbitmq
作域名解析,修改主机名,三台server都要部署
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17192.168.122.115 rabbitmq02 192.168.122.166 rabbitmq01 192.168.122.76 rabbitmq03 [root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq01 [root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq02 [root@rabbitmq01 ~]# hostnamectl --static set-hostname rabbitmq03 [root@rabbitmq01 ~]# yum -y install erlang [root@rabbitmq01 ~]# yum -y install socat [root@rabbitmq01 ~]# yum -y install rabbitmq-server [root@rabbitmq1 ~]# systemctl start rabbitmq-server.service [root@rabbitmq1 ~]# systemctl stop rabbitmq-server.service [root@rabbitmq1 ~]# systemctl enable rabbitmq-server.service [root@rabbitmq1 ~]# systemctl restart rabbitmq-server.service [root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management #启动监控管理 [root@rabbitmq1 ~]# ss -auntpl |grep rabbitmq #查看端口有没有启动 #进入浏览器访问 http://192.168.122.166:15672
访问到这个页面就成功,以上图片是加入节点的
二 搭建集群cluster
在rabbitmq01中加入其他的两个节点
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13[root@rabbitmq2 ~]# rabbitmqctl stop_app [root@rabbitmq2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1 #加入集群 [root@rabbitmq2 ~]# rabbitmqctl start_app [root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management [root@rabbitmq2 ~]# systemctl restart rabbitmq-server.service [root@rabbitmq1 rabbitmq]# rabbitmqctl cluster_status #查看集群的状态 Cluster status of node rabbit@rabbitmq1 [{nodes,[{disc,[rabbit@rabbitmq1]},{ram,[rabbit@rabbitmq3,rabbit@rabbitmq2]}]}, {running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]}, {cluster_name,<<"rabbit_cluster">>}, {partitions,[]}, {alarms,[{rabbit@rabbitmq3,[]},{rabbit@rabbitmq2,[]},{rabbit@rabbitmq1,[]}]}]
再次进入浏览器访问,若看到插入的三个节点(以上插入的图片),就证明集群搭建成功
三 部署haproxy
部署两台haproxy和keepalived,分别为主从,一下的操作两台都需要做
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42[root@hamaster ~]# yum -y install haproxy [root@hamaster ~]# vim /etc/haproxy/haproxy.cfg global log 127.0.0.1 local0 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user nobody group nobody daemon defaults mode http log global option dontlognull retries 3 maxconn 3000 contimeout 50000 clitimeout 50000 srvtimeout 50000 listen stats bind *:9999 stats enable stats hide-version stats uri /haproxy stats realm Haproxy stats stats auth admin:admin stats admin if TRUE listen rabbitmq #修改为rabbitmq,监听的内容 bind *:15672 #端口修改为rabbitmq的端口 mode tcp balance roundrobin server rabbitmq1 192.168.122.166:15672 check #三台的rabbitmq的ip server rabbitmq2 192.168.122.115:15672 check server rabbitmq3 192.168.122.76:15672 check [root@hamaster ~]# systemctl restart haproxy.service #重新启动服务 [root@hamaster ~]# systemctl status haproxy.service #查看一下状态
四 部署keepalived
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85[root@hamaster ~]# yum -y install keepalived [root@hamaster ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id directory1 #主和从的id不同 } vrrp_script check_run { #需要执行的脚本,与下边调用的名称应该保持一致,这里是check_run script "/etc/ha.sh" #脚本的位置,这里执行的脚本注意要授权 interval 5 } vrrp_instance VI_1 { state MASTER #从的记住改成BACKUP interface eth0 #查看自己的网卡名称,注意修改 nopreempt virtual_router_id 80 #rouit-id 保持一直 priority 100 #从的优先级低于主的优先级 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { #vip 192.168.122.20/24 } track_script { #调用执行上边的脚本 check_run #与上边的函数名称保持一致 } } #判断haproxy的脚本 #!/bin/bash systemctl status haproxy if [ $? -eq 0 ];then echo "successful" else systemctl stop keepalived fi ! Configuration File for keepalived global_defs { router_id directory1 } vrrp_script check_run { script "/etc/ha.sh" interval 5 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 80 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.122.20/24 } track_script { check_run } } #插入两个vip的情况,两台server互为主从 vrrp_instance VI_2 { state BACKUP interface eth0 nopreempt virtual_router_id 81 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 111 } virtual_ipaddress { 192.168.122.21/24 } }
访问vip,会得到rabbitmq的节点信息
最后
以上就是尊敬毛衣最近收集整理的关于rabbitmq+keepalived+haproxy的部署rabbitmq+keepalived+haproxy的部署的全部内容,更多相关rabbitmq+keepalived+haproxy内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复