JMS和MQ的理解

JMS

Jms即java消息服务javamessage service,所谓的面向消息编程,主要应用在企业内部各个系统之间做接口,以异步方式传递消息数据。

这里先抛出几个问题:

  • JMS传递消息是同步还是异步?
  • JMS和MQ有什么区别?
  • JMS传递消息的流程?
  • 能否保证可靠性?消息被消费能反馈给发送发?
  • 在接受消息时是主动去JMS服务器取还是由JMS服务器发送?
  • 监听器模式的实现原理?

回答:

  • JMS本身是为了异步通信产生的。也就是说,应用程序A发送一条消息到消息服务器的某个目得地,然后消息服务器把消息转发给应用程序B。B不用给出实时的response,A也不等待B的response。
  • JMS可以理解为一种协议,只是一套规范和接口,定义的内容有:消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。
    而MQ一般都是一种产品,可以遵循JMS的协议,也可以使用其他的协议。
  • JMS有两种通信模式:一对多一对一。一对一的模式称之点对点通信模型,在点对点通信模式中,应用程序由消息队列,发送方,接收方组成。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。一对多是订阅模式,相当于发送方发送,可以有多个接收方接受。

ActiveMQ

activmq是实现了JMS的一种消息队列。
(未完)

猜你喜欢

转载自www.cnblogs.com/trembear/p/10882429.html
jms