rabbitmq----haproxy+LVS+keepalived
rabbitmq
#rabbitmq做好集群
[root@server1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@server1 ...
Basics
Cluster name: rabbit@server1
Total CPU cores available cluster-wide: 12
Cluster Tags
(none)
Disk Nodes
rabbit@server3
RAM Nodes
rabbit@server1
rabbit@server2
Running Nodes
rabbit@server1
rabbit@server2
rabbit@server3
Versions
rabbit@server1: RabbitMQ 4.1.3 on Erlang 27.3.4.2
rabbit@server3: RabbitMQ 4.1.3 on Erlang 27.3.4.2
rabbit@server2: RabbitMQ 4.1.3 on Erlang 27.3.4.2
CPU Cores
Node: rabbit@server1, available CPU cores: 4
Node: rabbit@server3, available CPU cores: 4
Node: rabbit@server2, available CPU cores: 4
haroxy
#配置示例
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
defaults
mode tcp
log global
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend main
bind *:5670
default_backend app
backend app
balance roundrobin
option tcp-check
tcp-check connect
server app1 192.168.135.134:5672 check
server app2 192.168.135.133:5672 check
server app3 192.168.135.132:5672 check
listen rabbitmq_cluster
bind 0.0.0.0:15670
balance roundrobin
mode http
server app1 192.168.135.134:15672 check
server app2 192.168.135.133:15672 check
server app3 192.168.135.132:15672 check
[root@haproxy ~]# ip addr add 192.168.2.200/32 dev lo
[root@haproxy ~]# sysctl -p
net.ipv4.conf.ens160.arp_announce = 2
net.ipv4.conf.ens160.arp_ignore = 1
[root@haproxy ~]# vim /etc/rsyslog.conf
#取消一下注释
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
#添加以下
local2.* /var/log/haproxy.log
[root@haproxy ~]# systemctl restart rsyslog
keepalived
#配置示例
[root@keepalived ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id keepalived
}
vrrp_instance lvs-dr {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.200
}
}
virtual_server 192.168.2.200 5670 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.2.139 5670 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 5670
}
}
}
virtual_server 192.168.2.200 15670 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.2.139 15670 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 15670
}
}
}