《ActiveMQ系列》2.Centos7安装ActiveMQ

1 下载安装包

activemq官网

自从ActiveMQ5.17.0版本开始,要使用java11+版本,所以我这里用5.16.6版本,支持java8版本,参考本教程之前,请确保已经安装java环境。

activemq5.16.6

wget https://archive.apache.org/dist/activemq/5.16.6/apache-activemq-5.16.6-bin.tar.gz

2 解压缩

# 解压
tar -zxvf apache-activemq-5.16.6-bin.tar.gz
# 移动位置并且该名称
 mv apache-activemq-5.16.6 /opt/software/activemq5

3 启动

# 后台启动
./activemq console

# 守护进程方式启动
./activemq start

4 远程访问

ActiveMQ默认只能本机访问,所以需要修改jetty.xml,找到id为jettyPort的bean标签,修改host属性为0.0.0.0,大概位置在117行左右。

# 进入到conf文件夹
cd conf
# 编辑jett.xml文件
vim jetty.xml
# 找到jettyPort的bean标签,host改为 0.0.0.0

修改完成之后,重启activemq。访问http://localhost:8161/,输入账号密码即可登录。

账号:admin
密码:admin

# 停止activemq
./activemq stop

# 启动activemq
./activemq start

登录完成之后看到以下页面,代表登录成功。

在这里插入图片描述

5 监听端口

ActiveMQ 的默认端口是 61616。项目中应该监听61616端口。

6 Web示例

Active MQ提供了几个演示的示例,从 5.8 开始,demo 被排除在默认配置之外。要使用 Web 示例启动代理,请使用activemq-demo.xml配置文件。以下是启动实例的命令。启动后直接访问http://localhost:8161/demo即可

bin/activemq console xbean:examples/conf/activemq-demo.xml

7 配置持久化

ActiveMq默认持久化是KahaDB,可以在conf目录下的activemq.xml中看到。我这里用的是mysql8.0进行持久化。

<persistenceAdapter>
    <kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>

7.1 安装依赖包

把maven仓库下的mysql包,复制到activemq安装目录下的lib文件夹下,我这里用的是mysql-connector-java-8.0.21.jar

7.2 编辑配置文件

编辑conf/activemq.xml文件,注释persistenceAdapter标签,改用mysql持久化,不用KahaDB持久化,注释之后添加以下配置

<persistenceAdapter>  
    <jdbcPersistenceAdapter dataSource="#mysql-ds" /> 
</persistenceAdapter>

配置mysql数据源,注意:mysql连接中的&要用&amp占位符代替,配置要在beans标签下,一定不要写在broker标签

<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/activemq?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false&amp;serverTimezone=GMT%2B8&amp;relaxAutoCommit=true"/> 
    <property name="username" value="root"/> 
    <property name="password" value="root"/> 
    <property name="poolPreparedStatements" value="true"/> 
</bean>

启动后会自动创建三张表,分别是:

  • ​ activemq_acks:用于存储消息,Queue和Topic都存储在这个表中
  • ​ activemq_lock:用于存储消息,Queue和Topic都存储在这个表中
  • ​ activemq_msgs:在集群环境中才有用,只有一个Broker可以获得消息,称为Master Broker,
    其他的只能作为备份等待Master Broker不可用,才可能成为下一个Master Broker。
    这个表用于记录哪个Broker是当前的Master Broker

注意:activemq不支持持久化订阅者有多消费

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值