码迷,mamicode.com
首页 > 其他好文 > 详细

ActiveMQ学习笔记(一)--认识消息JMS

时间:2016-08-18 21:36:24      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:mom   jms   activemq   

1、面向消息的中间件

    1.1 什么是MOM

     面向消息的中间件,Message Oriented Middleware,简称MOM,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。一个MOM系统,通常会包括客户端(Client)、消息(Message)和MOM,客户端是发送或者接收消息的应用程序,消息封装了要传递的内容,MOM可以存储和转发消息。

    1.2 MOM的好处

  • 降低系统间的通信复杂度。有了MOM,系统间通信可以跨编程语言、不用考虑复杂的网络编程,只需要关心自身和MOM之间如何进行消息的收发即可。而消息的收发通过简单的API就可以完成

  • 提高消息的灵活性。系统A通过MOM向系统B发送消息,消息可以存储在MOM中,并由MOM转发。即使是系统B不在线,MOM会持有这个消息,直到系统B连接并处理消息。这就是说,系统A发完消息后,就可以执行其它操作,而不必阻塞等待,尤其是对那些时间无关或者并行处理的操作,非常适用。

  • 松散耦合。有了MOM的存在,对于系统B而言,只要发送的消息没有变化,就不必考虑系统A的变化。A系统的代码改变,不会影响到B系统,反之亦然。

2、JMS概念

    2.1 JMS是什么

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

     JMS的规范包括两种消息模式,点对点和发布/订阅模式。

     JMS支持同步和异步的消息处理。

     JMS通常包括了以下部分:

      JMS Client:Java语言编写的客户端,用于收发消息

      Non-JMS Client:使用消息系统本地API编写的客户端

      Message:消息,用于在不同的客户端之间交换

      JMS Provider:JMS提供商,是消息系统(如ActiveMQ),当然既可以支持JMS,也同时支持Non-JMS。

      Administered Objects:给管理的对象,预置的JMS对象,被客户端使用

    2.2 JMS规范

     JMS规范只是定义了接口,并没有实现。详情见JMS API

3、JMS模型简介

    JMS支持两种消息模型:点对点模型(Point to Point,P2P)和发布/订阅模型(Publish/subscribe,pub/sub)

    3.1 点对点模型

  • 只有一个消费者。每条消息只有一个消费者,如果这小消息被消费,那么其他消息消费者不能接受此消息

  • 时间无关性。消息的消费和时间无关,只要消息被发送了,在消息过期之前,如果没有其他消费者消费了这个消息,那么客户端可以在任何时候来消费这个消息

  • 消费者必须确认。消费者收到消息后必须向Message Provide确认,否则会被认为没有接收到此消息,仍然可以被其他消费者消费,可以设置自动确认。

  • 非持久化的消息只发一次。非持久化的消息,可能会丢失,因为消息会过期,另外Message Provider可能会宕机。

  • 持久化消息严格发一次。消息可以被持久化,比如持久化在文件系统或者数据库中。

    3.2 发布/订阅模式

  • 每条消息可以有多个订阅者

  • 订阅者只能消费他们订阅topic之后的消息

  • 非持久化订阅,订阅者必须保持为活动状态才能使用这些消息,如果一个订阅者断开了一段时间,那么该订阅者就不能接收这段时间内的消息。

  • 持久化订阅,Message Provider会保存这些消息,即使订阅者因为网络原因断开了,再重新连接以后,能让消费者消费这些消息

本文出自 “阿酷博客源” 博客,请务必保留此出处http://aku28907.blog.51cto.com/5668513/1840048

ActiveMQ学习笔记(一)--认识消息JMS

标签:mom   jms   activemq   

原文地址:http://aku28907.blog.51cto.com/5668513/1840048

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!