- 简要概述
由Aphche出品,java语言实现。注意:安装jdk,需要jdk1.7以上版本
支持的消息应用协议:OpenWire,Stomp REST,WS Notification,XMPP,AMQP,MQTT
- 安装
端口确认步骤
Activemq默认使用了61616(openwire/activemq服务监控端口)、5672(amqp)、61613(stomp)、1883(mqtt)、61614(ws),8161(web管理页面端口)等端口
官网下载地址:ActiveMQ
2.1 压缩包解压 tar -zxvf xxx.tar.gz
2.2 启动。解压缩完以后进入bin目录 。执行./activemq start
2.3 关闭。执行./activemq stop
- 使用
3.1 两种数据结构
Topic(发布订阅) 一个生产者对应多个消费者,消息默认不会持久化,需要手动配置持久化。如果A服务器挂了,再生产一条消息的话,会被B服务器拿去使用,就算重新启动,A服务器也不会再拿到消息了。
Queue(点对点)一个生产者对应一个消费者,默认消息持久化
常见问题解决
- 启动之后,无监听?
查看和bin目录同级的data目录下,查看activemq.log日志。发现1883端口被占用,导致启动失败,修改配置文件端口(conf目录下,activemq.xml文件),重新启动。
- 修改用户名密码?
找到conf文件夹下的配置文件:jetty-realm.properties
- 修改web管理页面端口?
找到conf文件夹下的配置文件:jetty.xml文件,修改监听host访问为0.0.0.0,默认是127.0.0.1
- 打开linux防火墙端口?
iptables -I INPUT -p tcp --dport 8161 -j ACCEPT
iptables -I INPUT -p tcp --dport 61616 -j ACCEPT
或者/sbin/iptables -I INPUT -p tcp --dport 8161 -j ACCEPT&&/etc/init.d/iptables save&&service iptables restart&&/etc/init.d/iptables status
- 增加新账号?
activemq.xml新增账号密码(broker标签下添加)
内容如下:
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="lv" password="123"
groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
定义一个lv用户,密码为123,角色为users,admins
- 应用场景?
异步发送短信,邮件等服务
发送实时消息(同步数据等业务)