JMS 类型(Messaging Domain)包括:
1)、PTP:Point to Point:
发送者和接收者中有一个消息队列(messages quene),发送者发送消息则把消息加入 到队列 中,接收者接收消息则把消息从队列中取出;如果接收者没有接收,则这条消息永远保存在队 列中(除非已过期)。注意,每条消息只能有一个接收者,发送者和接收者之间可以异步,两者不 需要同时在线。
2)、Publish/Subscrib:
发送者把消息挂在一个主题下(类似电子公告板),接收者先订阅这个主题,当这个 主题有新 消息发布时,接收者就可以接收这个主题下的消息了,这个消息一直保持到所有订阅这个消 息的人(在线的)都接收了才删除。一条消息可以有多个接收者接收,注意,接收者和发送者 之间必须同步。
为了弥补这种类型的时间依赖(timing dependencies)劣势,JMS API 提供了创建持久订阅的机制, 这样不管接收者是否在线,发送者都可以发送,接收者也可以接收。
JMS API 程序设计模型,包括:
① Administered objects: connection factories and destinations
② Connections
③ Sessions
④ Message producers
⑤ Message consumers
⑥ Messages
1)、JMS Connection Factories
用来创建Connection 的对象,封装了使用者所有的配置,可以是ConnectionFactory、QueueConnectionFactory、TopicConnectionFactory的一个实例。可以用JNDI命名空间来管理connection Factories
2)、JMS Destinations
消息发送的目的地和来源地,在PTP类型中,Destination 是quene,而在pub/sub类型中,Destination是topic,一个JMS应用可以有多个quenes或者topics。和connection factory一样也可以用JNDI命名空间来管理Destinations
3)、JMS Connections
Connections其实就是一个虚拟的TCP/IP链接,在客户端和JMS提供者之间建立链接,通过它来创建Session。在应用关闭之前,你必须关闭connection,否则会造成资源不会释放。
4)、JMS Session
session是一个单线程的实例,它可以创建以下对象:
Message producers、Message consumers、Messages、Queue browsers、Temporary queues and topics
session提供了消息事务管理功能,如:
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
第一个参数表示非事务性,如果要使创建的消息具有事务性必须用true,第二个参数表示接收消息后会自动答复。
注:
摘自:csdn
该贴被lijun.fang编辑于2015-4-1 14:09:10