Java消息系统介绍

Java消息系统介绍

在这篇文章中,我将会讨论面向消息的中间件(Message Orientated Middleware) 以及如何经过JMS来实现。另外,我还将讨论适用于使用JMS的典型用例,以及用于讨论消息传递解决方案(如发布者/发送方,目的地/主题/队列, 订阅者/接收者)的不一样术语。我将介绍两种消息拓扑:点对点和发布订阅。java

数据访问层

在Java EE应用的典型架构中,数据访问层有不少和数据存储层通讯的技术,好比Java Persistence API(JPI), Java Connector Architecture(JCA),这些技术将应用程序链接到了企业信息系统(EIS)和Java消息服务系统(JMS)web

JMS用来作什么?

JMS用于在分布式系统中经过松耦合,异步,可伸缩性和安全的方式传递消息。应用程序经过以消息为导向的中间件发送和接收消息。 异步。意味着消息的发送方和接收方不须要同时与消息队列交互。所以,接收方能够在消息发送后的某个时间接收消息。express

  • 松耦合。 接收方和发送方相互不可见。
  • 可伸缩。意味着系统的不一样部分能够以不一样的速率增加,并响应应用的负载。例如,在一个站点上忽然出现了大量的活动致使经过中间件发送的消息极具增长,能够进行自动扩展。这样增长了系统的健壮性,不然很难应对这种忽然增大的负载,应用程序可能会出现问题,或者直接挂掉了。

何时使用JMS?

依赖与使用场景来使用JMS,可是一般,至少会有如下一种状况。api

  1. 应用程序应该可以在不须要当即响应消息的状况下发送消息。也许根本就不须要发送消息的响应或者就是单向通讯。
  2. 发送方不依赖接收方的接收,所以很容易替换接收方。归结于须要将应用程序的部分解耦。 当接收方挂掉,应用程序应该可以继续保持工做,这是健壮性方面的考虑。

术语

在讨论JMS时,有一些有用的术语能够帮助咱们传达咱们的意图。安全

  1. destination. destination是消息发送的位置,并被称为topic或queue。这一般在JMS中定义为字符串值。应该给目的地提供表示其功能的名称。
  2. JMS系统有publisher或sender。这是消息来源的地方,也是消息终止的订阅者或接收者。这里使用的术语依赖于消息传递系统的拓扑,它能够是点到点,也能够是发布/订阅。
  3. 消息有一个有效载荷(payload),它包含了接收者提取和处理的有用信息。消息类型能够是文本、二进制、流、对象或属性映射。

点到点的消息拓扑结构

输入图片说明 在点对点设置中,消息的来源被称为发送方,而目的地被称为队列。这里消息被发送到一个目的地,只有一个消息的实例被接收方接收。若是接收方关闭,则消息将在队列中保存,直到接收方从新启动并再次运行。服务器

发布订阅消息拓扑结构 输入图片说明session

在发布/订阅设置中,消息的来源被称为发布者,目标被称为主题。在这里,许多订阅者能够订阅一个主题,每一个订阅者都接收到消息的一个实例。所以,一个消息被发送给许多等待的订阅者。若是订阅服务器关闭,它将不会接收到消息,当它再次运行时。架构

更多参考

原文: https://dzone.com/articles/java-message-system-introduction?edition=327491&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=Daily%20Digest%202017-09-22java-ee

相关文章
相关标签/搜索