JMS理解

Posted by 麦子 on Monday, 2020年03月02日

转载地址:https://www.cnblogs.com/Zender/p/9098410.html

消息服务

消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持应用程序开发。在Java中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果。

简介

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM-分布式系统的集成)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

JMS是一种与厂商无关的 API,用来访问消息收发系统消息,它类似于JDBC(Java Database Connectivity)。

体系架构

JMS由以下元素组成:

JMS提供者 连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。
JMS客户 生产或消费基于消息的Java的应用程序或对象。
JMS生产者 创建并发送消息的JMS客户。
JMS消费者 接收消息的JMS客户。
JMS消息 包括可以在JMS客户之间传递的数据的对象。
JMS队列 一个容纳那些被发送的等待阅读的消息的区域。与队列名字所暗示的意思不同,消息的接受顺序并不一定要与消息的发送顺序相同。一旦一个消息被阅读,该消息将被从队列中移走。
JMS主题 一种支持发送消息给多个订阅者的机制。

通常会说到一些术语

消息中间件(JMS Provider) : 指提供了对JMS协议的第三方组件,比如RocketMQ就是一个消息中间件,另外比较知名的还有KafKa、 Rabbit MQ、ActiveMQ等

消息(Message): 通信内容的载体,其结构主要分为消息头,属性和消息体,并且根据存储结构的不同分为好几种,后面会详细提到。

消息模式:分为点对点(Point to Point,即P2P)和发布/订阅(Pub/Sub),对应的数据结构分别是队列(Queue)和主题(Topic)

消息生产者:产生消息的一方,在P2P模式下,指消息发送者(Sender),在P/S模式下指消息发布者(Publisher)

消息消费者:接收消息的一方,对应于两种模式分别是消息接收者(Receiver)和消息订阅者(Subscriber)

和RocketMQ关系

指提供了对JMS协议的第三方组件,比如RocketMQ就是一个消息中间件,另外比较知名的还有KafKa、 Rabbit MQ、ActiveMQ。

「真诚赞赏,手留余香」

真诚赞赏,手留余香

使用微信扫描二维码完成支付