Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。
ActiveMQ是Apache下的一个项目,采用Java语言开发;
ActiveMQ 是一款非常流行的开源消息服务器,实现了JMS规范;
官网: http://activemq.apache.org/
目前最新ActiveMQ最新版本为ActiveMQ 5.15.8,支持JMS1.1,不支持2.0以上的版本,它们的主要区别是2.0以上可以使用注解进行配置。
JMS只是定义了一组有关消息传送的规范和标准,并没有真正实现,也就说JMS只是定义了一组接口而已。就像JDBC抽象了关系数据库访问、JPA抽象了对象与关系数据库映射一样,JMS具体的实现由不同的消息中间件厂商提供,比如Apache ActiveMQ就是JMS规范的具体实现,Apache ActiveMQ才是一个消息服务系统,而JMS不是。
最主要的功能就是:实现JMS Provider用来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统。
1.完全支持JMSI.1和J2EE1。4规范(持久化,XA消息,事务〕
2.支持多种传送协议:in-VM,TCP,SSL,UDP,JGroups,JXTA
3.可插拔的体系结构,可以灵活定制,如:消息存储方式、安全管理等
4.很容易和Application Server集成使用
5.多种语言和协议编写客户端。语言Java,C,C++,C#,Ruby,P以Python,PHP
6.从设计上保证了高性能的集群,客户端一服务器,点对点
7.可以很容易的和spring结合使用
8.支持通过JDBC和journal提供高速的消息持久化
9.支持与Axis的整合
ActiveMQ环境搭建
① ActiveMQ运行需要Java的支持,首先需要配置Java环境变量
② 将下载好的tar上传到Linux服务器/home/soft/目录下
③ 解压
tar -zxvf apache-activemq-5.15.8-bin.tar.gz -C /usr/local/
其中 -C /usr/local/ 指定把文件解压到哪里去;
解压后就安装完成了,即可使用,不需要其他操作。
④ 启动
切换到解压后的ActiveMQ的bin目录下
执行 ./activemq start
启动后有两个端口号,一个是web控制台:8161,一个是消息服务broker连接端口:61616
web管理控制台admin URL地址:http://localhost:8161
默认登录账号 admin 密码 admin,注意:Linux防火前要关闭
消息服务broker URL地址 : tcp://localhost:61616
⑤ 关闭
切换到解压后的ActiveMQ的bin目录下
执行./activemq stop
⑥ 无法关闭的问题
把data目录下的所有文件及目录都删除
把activeMQ主目录下的 tmp 目录也删除
下载activeMQ windows版本的压缩包
解压下载下来的压缩包,解压后就可以直接使用
进入解压后的目录的bin下面
在地址栏输入 cmd 后确定
在dos窗口里面输入: activemq start 进行启动
关闭:activemq stop
1. 用户注册的时候,重点内容是将用户信息保存到数据库中,发短信验证或者是发邮件增加了业务的复杂度。这时使用MQ将发短信、发邮件通知MQ由另外的服务平台完成。
2. 搜索平台、缓存平台
查询数据,建立缓存、索引,不从数据库查询,从缓存或者索引库查询,当数据库发生增加、修改、删除操作时发消息给MQ,缓存平台或者是索引平台从MQ获取到这个消息,更新缓存或者索引。
① ActiveMQ使用的是标准的生产者(完成生产消息并发送消息)和消费者(获取消息,完成自己的业务逻辑)模型
② 有两种数据结构
③ Topic(发布订阅) 一个生产者对应多个消费者,消息默认不会持久化,需要手动配置持久化。如果A服务器挂了,再生产一条消息的话,会被B服务器拿去使用,就算重新启动,A服务器也不会再拿到消息了
④ 商品系统、库存系统、生成商品详情页面的系统,现在要添加一个商品信息,消息肯定是需要让库存系统以及商品信息详情页面系统知道的。
⑤ Queue(点对点)一个生产者对应一个消费者,默认消息持久化
StringMessage
mapMessage
byteMessage
objectMessage
要完成topic模式的消息持久化,需要保证每个消费者有唯一的clientID。