面向消息的中间件和ActiveMQ的介绍
关键字: MOM JMS activemq 异步消息 消息中间件 jconsole mbean
什么是消息中间件
面向消息的中间件:Message-oriented Middleware, MOM
基本功能:将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序。
主要特点:
- 消息异步接受,类似手机短信的行为,消息发送者不需要等待消息接受者的响应,减少软件多系统集成的耦合度;
- 消息可靠接收,确保消息在中间件可靠保存,只有接收方收到后才删除消息,多个消息也可以组成原子事务。
公司在发展过程中,开发(或者购买了)多套企业信息系统,比如财务系统,人事系统,在线销售系统,运营系统等。
这些系统生产/消费公司的各种业务数据。
公司需要将这些系统集成(整合),比如让在线销售系统的订单数据输入到财务系统中。
类似应用的一般系统需求是:
- 可靠传输,数据不能丢失,有的时候,也会要求不能重复传输;
- 异步传输,否则各个系统同步发送接受数据,互相等待,造成系统瓶颈。
公司可以为此开发自己的软件服务,代价会比较大,现在一般使用已经成型的 消息中间件。
目前比较知名的消息中间件:
- IBM MQSeries
- BEA WebLogic JMS Server
- Oracle AQ
- Tibco
- SwiftMQ
- AcitveMQ:是免费的java实现的消息中间件
什么是JMS
JMS Java Message Service,Java消息服务。
和消息中间件的关系,类似于DBMS和JDBC的关系。
JMS是个标准,见: java.sun.com/products/jms/
目前版本是1.1。
JMS是J2EE(JavaEE)标准的一部分。
ActiveMQ的简单使用
简介
ActiveMQ,网址: activemq.apache.org/
目前是Apache下的一级项目。
免费开源由java编写符合JMS1.1标准的消息中间件。
另外,它也支持通过除java语言外的语言的使用:
- PHP
- C/C++
- C#
- Ruby
- Perl
- Python
简单使用
本文操作系统Windows XP。
SUN JDK 1.6.0_03。
启动:
进入${active-mq}\bin目录。
运行 activemq.bat
检查安装是否成功:
命令行执行如下命令
- netstat -an|find "61616"
显示如下内容表示启动成功:
- TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
创建队列:
最简单的办法是使用java6提供的jconsole,使用方法见: marshal.iteye.com/blog/138879
在jconsole中使用activemq提供的MBean创建队列。
向ActiveMQ发送消息:
接收信息:
使用该队列的browse方法获取。
删除队列:
使用broker/操作/removeQueue方法删除。
其他操作队列的方法:
使用JMS API,发送和接收队列、主题中的消息,可以结合Spring简化开发。
第三方图形化客户端,比如hermesjms: www.hermesjms.com,是免费的java swing编写的JMS客户端。
还有其他基于web的客户端。