ActiveMQ 单服务器的安装及其管理,概述集群部署的方法
发布时间:2019-05-13 11:08:00 来源: 互盟云
1.概述
官网:http://activemq.apache.org/
ApacheActiveMQ是最流行和最强大的开源消息传递和集成模式服务器。
ApacheActiveMQ速度很快,支持许多跨语言客户端和协议,随附易于使用的企业集成模式和许多高级功能,同时完全支持JMS1.1和J2EE1.4。
ApacheActiveMQ是在Apache2.0许可下发布的。
ActiveMQ支持JMS规范的两种【消息模型】:
点对点(queue,pointtopoint):生产者生产并发布消息到queue中,消费者从queue中取出并消费消息(消息被移出,只能被一个消费者收取)。
发布/订阅(topic,publish/subscribe):生产者将消息发布到topic中,同时有多个消费者订阅并消费该消息(同一消息被所有订阅者收取)。
2.安装ActiveMQ(5.15.3)
2.1下载
http://activemq.apache.org/download.html
http://activemq.apache.org/activemq-5153-release.html
根据操作系统下载:Linux|Windows
2.2安装(解压)
环境要求JRE1.7(ActiveMQ5.10.0以下可以为JRE1.6)。
1
2
wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz
sudotar-zxfapache-activemq-5.15.3-bin.tar.gz-C/opt
2.3设置环境变量
1
2
3
##sudovim/etc/profile##所有用户有效
exportACTIVEMQ_HOME=/opt/apache-activemq-5.15.3
exportPATH=$PATH:$ACTIVEMQ_HOME/bin
保存文件,Linux用户重新登录后生效。
2.4配置
1
2
3
4
##sudovim$ACTIVEMQ_HOME/conf/activemq.xml
##客户端参数默认值:监听端口61616,最大连接数1000,最大消息100M
##管理后台参数默认值:监听端口8161
<transportConnectorname="openwire"uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
2.5启动与停止
1
2
3
4
tail-f$ACTIVEMQ_HOME/data/activemq.log
sudo$ACTIVEMQ_HOME/bin/activemqconsole##作为“前台进程”启动(CTRL+C停止)
sudo$ACTIVEMQ_HOME/bin/activemqstart##作为“守护进程”启动
sudo$ACTIVEMQ_HOME/bin/activemqstop##停止“守护进程”
2.6防火墙放行
如果非本机应用需要连接,必须把监听端口放行。
1
2
3
4
###sudovim/etc/sysconfig/iptables
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport8161-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport61616-jACCEPT
###重启生效:sudosystemctlrestartiptables
3.管理
浏览器打开:http://centos:8161/admin
用户名/密码:admin/admin(可以在conf/users.properties中修改)
Home:主机和版本等信息
Queues:各队列的信息,包括名称、生产个数/消费个数、各生产者/各消费者,可进行删除操作等;
Topics:各主题的信息,包括名称、生产个数/消费个数、各生产者/各消费者等;
Subscribers:订阅者;
Connections:各连接;
Network
Scheduled
Send:手工发送JMS消息。
4.高级用法
4.1集群部署
文档:http://activemq.apache.org/masterslave.html
常用方案是基于排他锁的Master-Slave架构:
排他锁可以是共享文件或共享数据表;
集群启动时,首先夺得排他锁的节点成为Master节点,对外提供服务;
其他节点(可以有多个)则作为Slave节点,不对外提供服务;
当Master节点故障时(网络中断、应用异常等),某个Slave会夺得排他锁而升级为Master;
发生故障的前Master恢复时,只能作为Slave备用。
根据排他锁实现方案,可分为以下三种:
共享文件系统:需要共享的文件系统,如SAN;
共享数据库:需要共享数据库,ActiveMQ版本要求为4.1+;
ZooKeeper服务器:非常快,需要ZooKeeper服务器,推荐KahaDB存储,ActiveMQ版本要求为5.9.0+。
它使用ZooKeeper(应该运行至少3个ZooKeeper服务器节点)来协调集群中的哪个节点成为主节点。
客户端应该使用故障转移传输连接到可用的代理:
failover:(tcp://broker1:61616,tcp://broker2:61616,tcp://broker3:61616)
由于只有Master对外提供服务,客户端只能连接上当前Master。
集群扩展方案:
垂直扩展:提升硬件性能(CPU/内存),改进ActiveMQ配置;
水平扩展:不同业务类型的queue/topic拆分更多的broker中,类似于数据库的分库分表。
4.2更多细节
http://activemq.apache.org/faq.html
作者:王克锋
出处:https://kefeng.wang/2017/10/16/activemq-deploy/
本文来源:
https://www.humengyun.com/news-view-760.html