Java消息传递规范 ~ JMS
2018-11-12 本文已影响6人
帅可儿妞
Java提供的用来模块之间消息通讯的一组接口成为JMS,即Java Message Service;存在于JDK中;
一、JMS简介
- JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS 客户机发送消息。
- JMS本身只定义了一系列的接口规范,是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。
- 厂商对JMS的支持:
- IBM 的 MQSeries
- BEA的 Weblogic JMS service
- Progress 的 SonicMQ
- ……
- 消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。
- JMS 定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。
- TextMessage:一个字符串对象;
- MapMessage:一套名称-值对;
- ObjectMessage:一个序列化的 Java 对象,这个类必须实现Serializable接口;
- BytesMessage:一个字节的数据流;
- StreamMessage:Java 原始值的数据流,也是键值对的形式,但是取值的时候必须按照存储的顺序取值;
二、JMS消息传递类型
- PTP:点对点的,即一个生产者和一个消费者一一对应;
- Pub/Sub:发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收;