JMS教程

时间:2020-02-23 14:35:21  来源:igfitidea点击:

如今,大多数企业应用程序都使用消息传递概念在使用JMS或者AMQP的异构应用程序之间进行异步通信。
我将在以后的文章中发表一系列文章,以实时示例的形式详细讨论这些概念。

JMS

  • JMS是Java Messaging System的首字母缩写。

  • JMS是Java EE的一部分。

  • JMS API是处理生产者-消费者问题的实现。

  • JMS API允许我们创建,发送,接收和阅读消息。

  • 使用JMS的一些好处是–松散耦合的应用程序,可靠性和异步通信。

什么是讯息?

该消息是一条信息。
它可以是文本,XML文档,JSON数据或者实体(Java对象)等。
消息对于在不同系统之间进行通信非常有用的数据。

什么是消息传递?

消息传递是指在同一系统或者不同系统中的不同组件之间交换信息。
它可以以同步方式或者异步方式发生。

什么是JMS?

JMS代表Java消息服务。
JMS API是Java API,其中包含一组通用接口,以实现基于企业的消息传递系统。
JMS API仅用于在基于Java的应用程序中实现消息系统,它不支持其他语言。

JMS API用于在不同系统之间创建,发送,接收和读取消息或者交换消息。
一旦我们使用JMS API开发了Java消息系统,就可以在任何JMS Provider软件中部署相同的应用程序。

JMS体系结构

企业应用程序可能具有" n"个组件,并且它们正在使用以下所示的消息传递系统之一来交换消息。

JMS消息系统

某些企业应用程序可能具有" n"个数字系统,并且它们存在于不同的位置。
他们使用不同的平台。
如果他们想以松散耦合的方式交换信息,那么我们应该使用JMS消息系统。

分布式系统中的JMS

JMS的优势

  • 松耦合:我们可以很容易地开发松耦合应用程序。
    这意味着JMS API是所有JMS提供程序都应实施的标准或者规范,以便我们可以将现有的JMS提供程序更改为新的JMS提供程序,而只需进行很少的更改(即仅配置),而无需更改我们的JMS应用程序代码。

  • 异步:我们可以非常轻松地开发异步消息应用程序。
    这意味着JMS Sender可以发送消息并继续自己的工作。
    它不等待JMS Receiver完成消息使用。

  • 健壮且可靠:JMS确保将一条消息仅传递到目标系统一次。
    因此,我们可以非常轻松地开发可靠的应用程序。

  • 互操作性:JMS API允许其他Java平台语言(例如Scala和Groovy)之间的互操作性。

JMS组件

典型的JMS系统包含以下组件:

  • JMS客户端:用于发送(或者产生或者发布)或者接收(或者使用或者订阅)消息的Java程序。

  • JMS发送器:JMS客户端,用于将消息发送到目标系统。
    JMS发送者也称为JMS生产者或者JMS发布者。

  • JMS接收器:JMS客户端,用于从源系统接收消息。
    JMS接收器也称为JMS使用者或者JMS订阅者。

  • JMS提供程序:JMS API是一组通用接口,不包含任何实现。
    JMS Provider是第三方系统,负责实施JMS API以向客户端提供消息传递功能。
    JMSProvider也称为MOM(面向消息的中间件)软件或者Message Broker或者JMS Server或者Messaging Server。
    JMS Provider还提供了一些UI组件来管理和控制此MOM软件。

  • JMS管理对象:管理员为使用JMS客户端而预先配置的JMS对象。
    它们是ConnectionFactory和目标对象。

  • ConnectionFactory:ConnectionFactory对象用于在Java应用程序和JMS Provider之间创建连接。
    应用程序使用它与JMS Provider进行通信。

  • 目标:目标也是JMS客户端使用的JMS对象,用于指定其发送的消息的目标和接收的消息的源。
    有两种类型的目标:队列和主题。

  • JMS消息:一个对象,其中包含在JMS客户端之间传输的数据。

最受欢迎的JMS提供者

S.No.JMS Provider SoftwareOrganization
1.WebSphere MQIBM
2.Weblogic MessagingOracle Corporation
3.Active MQApache Foundation
4.Rabbit MQRabbit Technologies(acquired by Spring Source)
5.HornetQJBoss
6.Sonic MQProgress Software
7.TIBCO EMSTIBCO
8.Open MQOracle Corporation
9.SonicMQAurea Software

JMS API的历史

S.No.JMS API VersionReleased Date
1.JMS 1.0.2June 2001
2.JMS 1.1March 2003
3.JMS 2.0Jan 2013