1、ActiveMQ介绍
1.1、什么是ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
消息队列中间件是分布式系统中的一种的组件,主要解决应用服务之间耦合,异步消息,流量削锋,等问题实现提高系统性能的一种架构。
- 主要特点:
1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
3. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
6. 支持通过JDBC和journal提供高速的消息持久化
7. 从设计上保证了高性能的集群,客户端-服务器,点对点
8. 支持Ajax
9. 支持与Axis的整合
10. 可以很容易得调用内嵌JMS provider,进行测试
1.2、JMS介绍
JMS的全称是Java Message Service,即Java消息服务。用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。
对于消息的传递有两种类型:
- 一种是点对点的,即一个生产者和一个消费者一一对应;
- 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。
JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
· StreamMessage -- Java原始值的数据流
· MapMessage--一套名称-值对
· TextMessage--一个字符串对象
· ObjectMessage--一个序列化的 Java对象
· BytesMessage--一个字节的数据流
1.3、ActiveMQ应用场景分析:
- 1)用户注册,重点用户信息数据库保存,发短信、发邮件,增加业务处理复杂度,这时候用MQ,将发短信、发邮箱,通知MQ,由另外服务平台完成
- 2)搜索平台、缓存平台
查询数据,建立缓存、索引,不从数据库查询,从缓存或者索引库查询
当增加、修改,删除数据时,发送消息给MQ,缓存平台、索引平台从MQ获取到这个消息,更新缓存或者索引
1.4、项目中使用:
1.项目中是否使用消息中间(MQ)件进行通信?有什么好处?
项目中使用到了Activemq,可以实现系统之间的异步通信,从而实现业务的解耦和执行效率的提升。
2.Activemq有几种消息通信方式?
使用MQ中间件可以有两种通信方式queue和topic。Queue可以实现点到点之间的通信,可以有多个Producer也可以有多个Consumer,但是消息只能被一个Consumer接收,一旦消息被消费后就没有了。
Topic可以实现类似广播的通信方式,可以有多个Producer和多个Consumer,一旦有Producer发送消息后,此消息可以被所有Consumer接收。
3.Activemq在你项目中的应用场景是什么?
应用场景1:当后台系统对数据进行添加、删除、修改后,将会发送一个消息变化的消息,此消息通过topic进行通信,有多个消费端,:商品详情页面的静态页面会重新生成。
应用场景2:用户注册时,向用户注册发送短信验证码,采用queue方式通信。消费端调用阿里大于短信接口进行短信的发送。
2、ActiveMQ的安装
2.1、下载
进入http://activemq.apache.org/下载ActiveMQ
2.2、安装
安装步骤:
第一步:安装jdk,需要jdk1.7以上版本
第二步:解压缩activeMQ的压缩包。
第三步:进入bin目录。
启动:[root@localhost bin]# ./activemq start
停止:[root@localhost bin]# ./activemq stop
第四步:访问后台管理。
http://192.168.25.168:8161/admin
用户名:admin
密码:admin