什么是JMS
JMS(Java Messaging Service) 是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。
JMS
本身只定义了一系列的接口规范,是一种与厂商无关的 API
,用来访问消息收发系统。它类似于 JDBC(java Database Connectivity)
:这里,JDBC 是可以用来访问许多不同关系数据库的 API
,而 JMS
则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持JMS
,包括 IBM 的 MQSeries
、BEA的 Weblogic JMS service
和 Progress 的 SonicMQ
,这只是几个例子。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机
向另一个 JML 客户机
发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。
JMS
定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
- TextMessage–一个字符串对象
- MapMessage–一套名称-值对
- ObjectMessage–一个序列化的 Java 对象
- BytesMessage–一个字节的数据流
- StreamMessage – Java 原始值的数据流
JMS 消息传递类型
对于消息的传递有两种类型:
一种是点对点的,即一个生产者和一个消费者一一对应:
另一种是发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收: