返回首页

互盟云动态

多看云动态,了解互盟新动向、学习行业科普知识
< 返回业界新闻列表

ActiveMQ 单服务器的安装及其管理,概述集群部署的方法

发布时间:2019-05-13 11:08:00    来源: 互盟云
  ActiveMQ是Apache流行、强大的开源消息传递和集成模式服务器,它完全支持JMS1.1(严格实现“点对点”和“发布/订阅”两种消息模型)和J2EE1.4。作为实验,本文实现了ActiveMQ单服务器的安装及其管理,并概述了集群部署的方法。

  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&amp;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/
现在注册,即可享受多款产品免费体验
立即注册
故障赔偿 无理由退款 快速备案 专业服务 服务支持