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 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="/data" schedulerSupport="true">
81 <persistenceAdapter>
82 <kahaDB directory="/data/kahadb"/>
83 </persistenceAdapter>
# ./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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
activitmq+keepalived+nfs 非zk的高可用集群构建的更多相关文章
- 基于Keepalived实现LVS双主高可用集群
Reference: https://mp.weixin.qq.com/s?src=3×tamp=1512896424&ver=1&signature=L1C7us ...
- RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地
系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...
- 分布式FastDfs+nginx缓存高可用集群构建
介绍: FastDFS:开源的高性能分布式文件系统:主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡 FastDFS:角色:跟踪服务器(Tracker Server).存储服务器(St ...
- Keepalived+LVS+nginx搭建nginx高可用集群
1. 环境准备 1. VMware; 2. 4台CentOs7虚拟主机:192.168.122.248,192.168.122.68, 192.168.122.110, 192.168.122.167 ...
- 【 Linux 】Keepalived实现双主模型高可用集群
要求: 1. 两台web服务器安装wordpress,数据库通过nfs共享 2. 使用keepalived实现双主模型 环境: 主机: 系统:CentOS6.7 x64 ...
- heatbeat-gui实现基于nfs的mysql高可用集群
一.简述HA高可用集群 高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务.以实现减少业务中断时间,为用户提供更可靠,更高效的服务. ...
- Linux 笔记 - 第十八章 Linux 集群之(一)Keepalived 高可用集群
一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.此处只讲高可用集群,负载均衡放在下一篇博客讲解. 高可用集群(High Availability Cluster,简称 HA ...
- LVS+Keepalived-DR模式负载均衡高可用集群
LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...
- 使用Keepalived构建LVS高可用集群
LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...
随机推荐
- 基于redis实现tomcat8的tomcat集群的session持久化实现(tomcat-redis-session-manager二次开发)
前言: 本项目是基于jcoleman的tomcat-redis-session-manager二次开发版本 1.修改了小部分实现逻辑 2.去除对juni.jar包的依赖 3.去除无效代码和老版本tom ...
- C:static 关键字、静态变量、跨类访问数据
static 在OC中的使用 参考1 参考2 参考3 参保4 参考5 跨类访问成员 参考 +号方法就是类方法(静态方法),说明不用创建对象,可以直接通过类型去直接调用这个方法,在OC ...
- 【197】PowerShell 通过 FTP 下载文件
参考:使用 WGET 从FTP上下载文件 在 PowerShell 使用 wget2 工具,代码如下: wget2 ftp://user:password@192.168.14.31/1.jpg 其中 ...
- Logback中%X的使用
1. 参考资料 https://gist.github.com/logogin/ff44c254f655340b653c http://www.cnblogs.com/zhudongchang/p/6 ...
- python学习笔记3-循环1
1 while break continue #while语句 ''' while 判断条件: 执行语句…… ''' count = 0 while (count < 9): print ('T ...
- 用"\v"=="v"判断是IE浏览器和非IE
其实就是利用各浏览器对转义字符"\v"的理解在ie浏览器中,"\v"没有转义,得到的结果为"v"而在其他浏览器中"\v" ...
- android:singleLine="true" 的意思(转载)
转自:http://blog.sina.com.cn/s/blog_72fad6270100tq0n.html 设置单行显示.如果和layout_width一起使用,当文本不能全部显示时,后面用“…” ...
- poj1837【背包】
题意: 有一根杆子,给出一些杆子上的位置,位置上能放重物,再给出一些重物的重量. 重物都需要被使用,但是位置不一定都要用到. 问你能有多少种方法让这个杆子平衡. 思路: 在位置上是0/1背包思想,取或 ...
- JSR 303 - Bean Validation 模型验证
类是转载的,不知道转的哪里的. 此类依赖 JSR 303 – Bean Validation, Hibernate Validator. 代码不能直接运行.意会一下.自己改改. import com. ...
- 使用Spring MVC的@RequestBody注解接收Json对象字符串
最近公司在开发移动APP,APP上通过jQuery提交表单的json字符串格式数据到Java后端,之前通过request手动接收,非常麻烦,其实Spring MVC已经为我们提供了一个注解@Reque ...