activemq单节点及高可用安装部署
activemq
单节点应用安装
单节点应用安装
1、安装
将ActiveMQ上传至服务器
2、解压
参数:
-C 指定要解压到哪个目录下
tar -zxf apache-activemq-5.16.2-bin.tar.gz -C /usr/local/
3、运行
cd activemq-5.16/
./bin/activemq start
打开浏览器测试访问:
以当前版本为例:
到目前为止,ActiveMQ已经运行起来了,但是经过测试通过http://192.168.173.180:8161控制台无法访问。
检查是否为防火墙原因:
防火墙显示已关闭,不是防火墙的原因。
[root@nfs activemq-5.16]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
检查ActiveMQ是否正常运行 检查日志
日志位置:/usr/local/activemq-5.16/data
结果显示运行正常
查看日志未显示报错信息,并且提示可以通过http://127.0.0.1:8161/ 访问控制台
随后通过curl命令在服务器上测试,发现http://127.0.0.1:8161/ 趋势可以访问
图片显示需要认证,这是正常的。
随后想到可能是和服务监听的地址有关
当前监听的地址是127.0.0.1,只能本地访问,需要改为0.0.0.0
解决
修改jetty.xml
地址改为0.0.0.0即可 ,下面的端口就是控制台监听的端口,也可以修改。
再次通过浏览器测试
显示这个界面说明MQ是正常的,账号密码存在/usr/local/activemq-5.16/conf目录下的jetty-realm.properties
账号/密码:admin/admin
高可用问题
利用共享文件存储解决activeMQ高可用问题
ActiveMQ采用准备的方式运行,使用nfs作为共享存储进行搭建
NFS: Network FileSysem
nfs安装使用详见:https://www.cnblogs.com/liangyongwang/p/15608627.html
存储原理:
四类文件+一把锁 ==》 KahaDB
db-.log 存储数据,一个存满会再次创建 db-2、db-3 …… ,当不会有引用到数据文件的内容时,文件会被删除或归档
db.data 是一个BTree 索引,索引了消息数据记录的消息,是消息索引文件,它作为索引指向了 db-.log 里的消息, 类似mysql 数据库,新建一张表,就有这个表对应的 .MYD 文件,作为它的数据文件,就有一个 .MYI 作为索引文件。
db.free 当前db.data文件里哪些页面是空闲的,文件具体内容是所有空闲页的ID
db.redo 当 KahaDB 消息存储在强制退出后启动,用于恢复 BTree 索引
lock 顾名思义就是锁
这里只做演示,具体操作时,可以将 nfs-server端单独部署在一个节点上,以保证数据的冗余。
1、部署列表
节点 | 应用 | 应用 |
---|---|---|
192.168.173.180 | mq01(主) | nfs-server端 |
192.168.173.211 | mq02(备) | nfs-client端 |
2、安装配置nfs
主节点:
yum install -y nfs-utils rpcbind
编辑/etc/exports文件
vim /etc/exports
文件内容:
/mq_data 192.168.173.0/24(rw,sync)
创建共享目录,并修改权限
mkdir /mq_data
chmod o+w /mq_data
从节点:
yum install -y nfs-utils rpcbind
挂载nfs:
mount -t nfs 192.168.173.180:/data /mnt
可以编辑/etc/fstab 配置文件 添加如下配置 ,设置开机自动挂载
3、测试nfs是否能同步数据
在备节点执行mount命令查看是否挂载成功
出现上方信息时,说明挂载成功,
进入备节点/mnt目录 创建一个文件,在到主节点上看一下/mq_data目录下文件是否正常同步过来了
3、安装配置单节点activemq
4、配置主从关系
主节点和备节点都需要修改
修改conf/activemq.xml
依次启动主备节点中activemq即可,正常情况下,备节点是一直起不来的,一直在每隔10秒尝试连接,
日志信息在 data/activemq.log
[root@k8snode2 data]# ls
activemq.log audit.log
[root@k8snode2 data]# pwd
/usr/local/activemq-5.16/data
5、测试主从