JMS的基础知识
1. 什么是JMS?
JMS的目的是应用程序能在异步情况下可靠地传递和接收信息。从编程的角度看,JMS可以被当作完成信息服务的一组API。
JMS使用消息系统处理进程间的通信,消息系统提供满足规范的方法连接应用中的不同的组件。当采用异步方式传递信息时,客户机不必等待处理过程都完成就可以继续处理。
2. JMS的通信机制
JMS的通信机制分为两类:
- 点对点通信 (PTP) -- 一对一通信,使用queue
- 发布/订阅 (Publish / Subscribe) -- 一对多,使用Topic
一些JMS相关的名词解释。
连接工厂 (Connection Factory): 客户端用来创建连接的管理对象
连接:代表一个与JMS提供者的活动连接
目的(Desination):标识消息的接收方式,分为:队列(Queue)和主题(Topic)
会话:接收和发送消息的会话进程
消息生产者
消息消费者
3. 发送和接收消息的过程
3.1 发送消息的过程
- 使用JNDI查询管理对象Connection Factory和Destination(目的);
- 使用管理对象Connetion Factory建立连接;
- 使用连接Connection建立会话Session;
- 使用会话Session和管理对象Desination创建消息生产者(Message Producer);
- 使用消息生产者发送消息。
3.2 接收消息的过程
- 使用JNDI查询管理对象Connection Factory和Destination(目的);
- 使用管理对象Connetion Factory建立连接Connection;
- 使用连接Connection建立会话Session;
- 使用会话Session和管理对象Desination创建消息消费者(Message Consumer);
-
使用消息消费者接收消息。
JMS消息
- 消息头:唯一标识消息与路由信息;
- 属性:使用属性添加额外的消息头内容;
- 消息体:消息的实际数据内容。