JMS 基础

最近接触了JMS,现在把自己掌握的一些关于JMS的基础知识拿出来与大家分享,希望可以帮助像我一样刚接触JMS的同僚快速入门。那就从以下几个概念来说吧:


JMS components(JMS 组件)

      JMS(Java Message Service)是一套基于Java进行面向消息的中间件(Message Oriented Middleware  MOM)编程的API,用来在两个或两个以上的客户端(clients)之间发送消息。那么一个JMS 系统是由以下几部分组成的:

      Providers(提供者)

      Messages(消息本身)

      Clients(客户端)

      Destinations(目的地)


下面来分别介绍这几个组成部分:


Providers(提供者)

      JMS的提供者是一个实现了JMS接口的消息系统,像Apache ActiveMQFUSE Message Broker 都是这样的消息提供者,又将之形象的称为“消息经纪人(Message Broker)”。


Messages(消息本身)

      是一个包含了传输数据的对象,这个对象要在JMS 客户端之间进行传递。


Clients(客户端)

      即应用程序,需要使用JMS消息提供者提供的服务,在一个JMS的系统中,有两种类型的客户端:生产者 (Producer)和消费者 (Consumer)。

      生产者 用来创建消息,并且将消息发送到“消息经纪人”那里,以用来发送到不同的目的地。

      消费者 会从目的地取回消息。


Destinations(目的地)

      消息的目的地由“消息经纪人”来维护,目的地由两种形式,可以是队列 (Queues),也可以是主题 (Topics)


队列(Queues)

      队列是一种消息的目的地,里面包含了被发送过来的消息,并且等着被读取。消息在队列中的顺序和发送来的顺序一样,先进来的先出去,并且消息被读取了以后就会被删除掉。队列被用作点对点 (point-to-point)或者一对一 (one-to-one)的消息模式中,如图1所示:


主题(Topics)

      主题模式是另一种消息的目的地形式,用来将消息发送到一个或多个消费者端。生产者将消息发送到主题模式的目的地,一个或多个消费者会订阅该主题。在这种一对多(one-to-many)的情景中,生产者也被称为发布者(Publishers),而消费者亦被称为订阅者,如图2所示:

 

 

图1
 
图2