1. JMS接口描述
JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS Parent 接口,JMS 主要接口如下所示:
1) ConnectionFactory
是客户机用来创建与JMS提供者的链接的对象。它是受控对象,可以通过JNDI查找。JMS API定义了两种类型的连接工厂。 QueueConnectionFactory 和 TopicConnectionFactory。
2) Connection
JMS 客户端到JMS Provider 的连接,连接对象是和JMS提供者通信的媒介。这个通信的具体实现依赖于JMS提供者。除了通用的借口,还有基于队列(QueueConnection)和基于主题(TopicConnection)专用接口。
3) Destination
消息的目的地,目标是受控对象。在JMS中表示一个队列或者一个主题。
4) Session
一个发送或接收消息的线程,用于创建消息的生产者、消费者和消息。它们都是单线程,能参加事务。有QueueSession和TopicSession。
5) Message
消息是消息服务器在客户端之间发送的一条条信息。有五种接口,不同的类型消息。
- StreamMessage -- Java原始值的数据流
- MapMessage--一组名/值对
- TextMessage--一个字符串对象
- ObjectMessage--一个序列化的 Java对象
- BytesMessage--一个未解释字节的数据流。
消息由以下几部分组成:
消息头(header):JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。
属性(property):由消息发送者产生,用来添加删除消息头以外的附加信息。
消息体(body):由消息发送者产生。
6) MessageProducer
由Session 对象创建的用来发送消息的对象,有QueueSender、TopicPublisher
7) MessageConsumer
由Session 对象创建的用来接收消息的对象,有QueueReceiver、TopicSubscriber