JMS概述

JMS (Java Message) is an API for accessing enterprise message systems.
WAS support JMS v1.1 as part of Java EE 5 specification.
JMS allows Java EE application to asynchronously send and receive business data and events.
JMS supports two style of asynchronous messaging:
Point-to-point (queue)
Publish/subscribe (topic spaces)

JMS defines an API, it is not an implementation.
JMS just defines some interface for applications to use.
It is up to someone else to provide the implementation under those interfaces.
The implementation is delivered as a JMS provider.

jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

JMS和JDBC一样,是sun推出的一组API的集合,不同的厂商去实现这些接口。JMS的类型:queue和topic,这些的区别,也不再废话多说。

JMS的消息分为两种,一个是消息头,一个消息体。

一个JMS程序包括以下部分。一个是支持JMS的服务器,一个JMS的生产者,即向服务器发送消息,这个没有任何要求,可以是任何程序,包括Servlet,JSP,或者Java Application。

发送JMS消息,跟写通过JDBC向数据库做操作一样。首先要查找数据源,建立数据库连接。JMS程序也是一样。不过它是基于JNDI的方式。

注:其实MDB本身是JMS体系的一部分,要不然sun推出这个特殊的EJB干吗?

要使用Java消息服务,你必须要有一个JMS提供者,管理会话和队列。现在既有开源的提供者也有专有的提供者。

开源的提供者包括:

Apache ActiveMQ

JBoss 社区所研发的 HornetQ

Joram

Coridan的MantaRay

The OpenJMS Group的OpenJMS

专有的提供者包括:

BEA的BEA WebLogic Server JMS

IBM的WebSphere MQ

Leave a Comment.