JMS介绍以及ActiveMQ

一、JMS简介

       JMS即Java消息服务(Java Message Service应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

        JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。

        JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(JavaDatabase Connectivity):这里,JDBC是可以用来访问许多不同关系数据库的API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持JMS,包括 IBM 的 MQSeries、BEA的Weblogic JMS service和Progress 的SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个JMS 客户机向另一个 JMS客户机发送消息。

       消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象(ObjectMessage)、属性集合(MapMessage)、字节流(BytesMessage)、原始值流(StreamMessage),还有无有效负载的消息(Message)

二、JMS体系结构

JMS由以下元素组成。

JMS提供者provider(如ActiveMQ,提供消息服务的): 连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。

JMS客户: 生产或消费基于消息的Java的应用程序或对象。

    1、JMS生产者: 创建并发送消息的JMS客户。

    2、JMS消费者: 接收消息的JMS客户。

JMS消息: 包括可以在JMS客户之间传递的数据的对象

JMS队列: 一个容纳那些被发送的等待阅读的消息的区域。与队列名字所暗示的意思不同,消息的接受顺序并不一定要与消息的发送顺序相同。一旦一个消息被阅读,该消息将被从队列中移走。

JMS主题: 一种支持发送消息给多个订阅者的机制。


三、ActiveMQ

JMS消息服务的两种消息模型:点对点模型和发布者/订阅者模型

1、点对点模型

       一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列。

2、发布者/订阅者模型

      支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。这种模式好比是匿名公告板

四、安装


生产者消费者发送接收消息的代码部分也很简单,就不再赘述

猜你喜欢

转载自blog.csdn.net/flyingdog123/article/details/80032696
今日推荐