JMSjava消息服务(Java Message Service),被称作是java平台中消息中间件。是一个综合的接口,类似JDBC。各厂商都有不同的实现。
自己做了一个图形的总结,见下图
总体流程是先有JMS的构成,在说JMS消息的传送流程,传送中有不同的模型。不同模型中实现有个别的差异。大体就是JMS的这些。接下来做个简要介绍
JMS的构成
1受控对象,一般为连接工厂之类的
2JMS提供者:就是实现JMS个各种消息的服务器,如:ActiveMq,EJB(MDB)
3JMS客户机:消息的生产者和消费者
4消息 :JMS客户机之间传送的
有了JMS的构成再说这些元素之间的流程会话就简单些许了
JMS创建流程
JMS消息发布的流程顺序分为以下步骤,每个步骤都是在构成元素基础上操作的
1) 用JNDI 得到ConnectionFactory对象;
2) 用ConnectionFactory创建Connection对象;
3) 用Connection对象创建一个或多个JMSSession;
4) 用JNDI得到目标队列或主题对象,即Destination对象;
5) 用Session和Destination 创建MessageProducer和MessageConsumer;
6) 通知Connection开始传递消息
基本流程图如下
消息模型
消息的传送方法分为两种:分别是p2p和订阅/发布模式
P2P模式
点对点进行是通过 队列queue,将消息持久化,并且接收方只能是以为而且也只能消费一次,不可能有副本,使用的策略是负载均衡的方式
Pub/sub
订阅发布模式 消息支持持久和不持久化
订阅发布模式是基于主题(Topic)概念,主题是消息发布目标,它和队列的不同就在于,可以有多个发送消息和接收消息的客户机,每个主题可以有多个发布者和多个订阅者。
小结:
通过对JMS的总结,认识到JMS为一个标准,给出了基本的套路和流程以及传播形式。只要提供者去实现这些流程和标准就可以通用了。