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的一种消息队列。
(未完)