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 ActiveMQ 和 FUSE 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 |