JMS是一个标准,就像EJB,有很多开源的,商业的实现,ms技术对应的规范是jsr914,规范的实现称为jms provider,常见的实现有ActiveMQ、JBoss MQ、IBM Websphere MQ等。
其主要优点:
(1)可以使2个系统或模块实现松耦合,模块A不需要直接调用模块B,只需要往jms provider上发送一条约定格式的消息,模块B收到这条消息,进行后续的业务处理
(2)jms方式是异步的,意味着模块A发送消息之后,不需要等待模块B或者jms provider的响应,自身的业务逻辑可以继续
无论是发送方还是接收方,接发信息都是遵照下面的步骤:
(1)使用JNDI查询对象JMS ConnectionFactory和Destination(JMS Queue/Topic)
(2)使用管理对象JMS ConnectionFactory建立连接Connection (初始化环境)
(3)使用连接Connection 建立会话Session (初始化环境)
(4)使用会话Session和管理对象Destination创建消息生产者MessageSender/MessageReceiver。(直到这一步,才创建了具体的针对某一个queuename的会话,前面的Connection和Session是整个JMS环境的初始化)
(5)发送消息/接收信息
(2)使用管理对象JMS ConnectionFactory建立连接Connection (初始化环境)
(3)使用连接Connection 建立会话Session (初始化环境)
(4)使用会话Session和管理对象Destination创建消息生产者MessageSender/MessageReceiver。(直到这一步,才创建了具体的针对某一个queuename的会话,前面的Connection和Session是整个JMS环境的初始化)
(5)发送消息/接收信息