activitimq集群搭建_activitmq+keepalived+nfs 非zk的高可用集群构建
nfs
192.168.10.32
maast
192.168.10.4
savel
192.168.10.31
應對這個需求既要高可用又要消息延遲,只能使用變態方式實現
nfs部署
#yum install nfs-utils rpcbind
#vim /etc/exports
/data/activemq 192.168.10.31(rw,sync,no_root_squash,no_all_squash)
/data/activemq 192.168.10.4(rw,sync,no_root_squash,no_all_squash)
#systemctl stop firewalld.service
#setenforce 0
#mkdir /data/activemq -p
#systemctl start nfs
客戶端掛載
#yum -y install nfs-utils.x86_64
# systemctl start rpcbind
# showmount -e 192.168.10.32
Export list for 192.168.10.32:
/data/activemq 192.168.10.4,192.168.10.31
# mkdir /data
# mount -t nfs 192.168.10.32:/data/activemq /data
# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 4.8G 13G 28% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 1.6M 486M 1% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
192.168.10.32:/data/activemq 17G 2.0G 16G 12% /data
使用yum安裝keepalived
# yum -y install epel-release-7-11.noarch
# yum -y install keepalived
安裝activemq部署
# tar xf apache-activemq-5.15.8-bin.tar.gz -C /usr/local/
# cd /usr/local/apache-activemq-5.15.8/conf
# vim activemq.xml 改成這樣的兩個節點都一樣
40
81
82
83
# ./activemq start 啟動
# ss -lntp | grep 61616
LISTEN 0 128 :::61616 :::* users:(("java",pid=21705,fd=137))
查另一個節點的端口
# ss -lntp | grep 61616
注意
1、共享文件的主從配置,是通過文件共享鎖來實現的。先拿到文件鎖的服務就是master,其它為slave服務,slave服務默認每10秒試圖拿一次文件鎖,可以查看activeMq的控制臺。
2、只有master的控制臺(如http://192.168.10.4:8161/admin)能夠訪問,slave的控制臺不能訪問,原因就是slave沒有拿到文件鎖,不能訪問文件。
配置keepalived的文件
備節點的配置
[root@localhost conf]# cd /etc/keepalived/
[root@localhost keepalived]# cat keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from ka2@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
vrrp_mcast_group4 224.111.111.111
}
vrrp_script chk_mq {
script "ss -lntp | grep 61616" #檢查端口是否存在,這里不能查進程
interval 2
weight -10
fall 2
rise 2
}
vrrp_instance External_1 {
state BACKUP
interface ens33
virtual_router_id 171
priority 95
advert_int 1
authentication {
auth_type PASS
auth_pass 1402b1b5
}
virtual_ipaddress {
192.168.10.5/24
}
track_script {
chk_mq
}
}
主節點的配置
# cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from ka1@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
vrrp_mcast_group4 224.111.111.111
}
vrrp_script chk_mq {
script "ss -lntp | grep 61616"
interval 2
weight -10
fall 2
rise 2
}
vrrp_instance External_1 {
state MASTER
interface ens33
virtual_router_id 171
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1402b1b5
}
virtual_ipaddress {
192.168.10.5/24
}
track_script {
chk_mq
}
}
驗證
[root@jiagoushi bin]# ss -lntp | grep 61616
LISTEN 0 128 :::61616 :::* users:(("java",pid=21705,fd=137))
[root@jiagoushi bin]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6a:6e:da brd ff:ff:ff:ff:ff:ff
inet 192.168.10.4/24 brd 192.168.10.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.10.5/24 scope global secondary ens33
valid_lft forever preferred_lft forever
inet6 fe80::13ba:653e:ffc4:7305/64 scope link noprefixroute
valid_lft forever preferred_lft forever
重啟activemq查看vip切換效果,注意誰先起誰就是主節點,主節點掛了釋放文件鎖后,從節點端口才能啟動
[root@jiagoushi bin]# ./activemq restart
INFO: Loading '/usr/local/apache-activemq-5.15.8//bin/env'
INFO: Using java '/usr/bin/java'
INFO: Loading '/usr/local/apache-activemq-5.15.8//bin/env'
INFO: Using java '/usr/bin/java'
INFO: Waiting at least 30 seconds for regular process termination of pid '21705' :
Java Runtime: Oracle Corporation 1.8.0_181 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
Heap sizes: current=62976k free=61991k max=932352k
JVM args: -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/usr/local/apache-activemq-5.15.8//conf/login.config -Dactivemq.classpath=/us
r/local/apache-activemq-5.15.8//conf:/usr/local/apache-activemq-5.15.8//../lib/: -Dactivemq.home=/usr/local/apache-activemq-5.15.8/ -Dactivemq.base=/usr/local/apache-activemq-5.15.8/ -Dactivemq.conf=/usr/local/apache-activemq-5.15.8//conf -Dactivemq.data=/usr/local/apache-activemq-5.15.8//dataExtensions classpath:
[/usr/local/apache-activemq-5.15.8/lib,/usr/local/apache-activemq-5.15.8/lib/camel,/usr/local/apache-activemq-5.15.8/lib/optional,/usr/local/apache-activemq-5.15.8/lib/web,/usr/local/apache
-activemq-5.15.8/lib/extra]ACTIVEMQ_HOME: /usr/local/apache-activemq-5.15.8
ACTIVEMQ_BASE: /usr/local/apache-activemq-5.15.8
ACTIVEMQ_CONF: /usr/local/apache-activemq-5.15.8/conf
ACTIVEMQ_DATA: /usr/local/apache-activemq-5.15.8/data
Connecting to pid: 21705
INFO: failed to resolve jmxUrl for pid:21705, using default JMX url
Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
.....INFO: Broker not available at: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
..........................
INFO: Regular shutdown not successful, sending SIGKILL to process
INFO: sending SIGKILL to pid '21705'
INFO: Loading '/usr/local/apache-activemq-5.15.8//bin/env'
INFO: Using java '/usr/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/apache-activemq-5.15.8//data/activemq.pid' (pid '40627')
INFO: Loading '/usr/local/apache-activemq-5.15.8//bin/env'
INFO: Using java '/usr/bin/java'
ActiveMQ is running (pid '40627')
[root@jiagoushi bin]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:6a:6e:da brd ff:ff:ff:ff:ff:ff
inet 192.168.10.4/24 brd 192.168.10.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::13ba:653e:ffc4:7305/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@jiagoushi conf]# ss -lntp | grep 61616
另一節點查看
[root@localhost keepalived]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:60:f4:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.31/24 brd 192.168.10.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.10.5/24 scope global secondary ens33
valid_lft forever preferred_lft forever
inet6 fe80::2dbd:f06e:6abd:907/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost keepalived]# ss -lntp | grep 61616
LISTEN 0 128 :::61616 :::* users:(("java",pid=22702,fd=137))
參考文章:https://cn.aliyun.com/jiaocheng/312402.html
總結
以上是生活随笔為你收集整理的activitimq集群搭建_activitmq+keepalived+nfs 非zk的高可用集群构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正能量的团队名字,最有凝聚力的团队名字4
- 下一篇: i茅台app怎么注册