作者名称:DaenCode
作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
人生感悟:尝尽人生百味,方知世间冷暖。
所属专栏:图解RabbitMQ
链接>>>>>>>>>
《Redis从头学》链接>>>>>>
《SpringBoot实战》在上一节中学习了消息队列是什么?以及消息队列的应用场景有哪些?那么实现消息队列的方式有哪些呢?那么本篇文章将对JMS规范、AMQP协议两大消息队列实现方式进行简单介绍。
以下解释来源于百度百科:
JMS即Java消息服务(Java Message Service)应用程序接口
,是一个Java平台中关于面向消息中间件(MOM)的API
,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC(Java Database Connectivity)
。
个人理解:
JMS是Java平台面向消息中间件的API规范,用来收发消息,类似于JDBC。
点对点模型:
以下解释来源于百度百科:
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计
。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制
。Erlang中的实现有RabbitMQ等。
个人理解:
一种提供统一消息服务的消息队列协议,一种标准。
Broker(代理器):代理器是AMQP协议的核心组件之一,负责接收、路由和传递消息。代理器代表一个消息中间件节点
。
Exchange(交换机):交换机是消息的路由中心
,用于接收生产者发送的消息并将其路由到一个或多个队列。交换机根据预定义的路由规则,将消息路由到特定的队列或者其他交换机。
Queue(队列):队列是消息的存储和转发载体
。消费者从队列中接收消息,并进行处理。消息在队列中按照先进先出的顺序进行存储和转发。
Binding(绑定):绑定是交换机和队列之间的关联关系
。通过绑定,将交换机和队列关联起来,并定义特定的路由规则,以确定消息该被发送到哪个队列。
Message(消息):消息是AMQP中的基本单位,包含要传递的数据和相关的元数据
。消息由生产者发送给交换机,并最终路由到队列,然后由消费者进行消费。
Channel(通道):通道是在客户端和代理器之间建立的虚拟连接
。通过通道,可以在客户端和代理器之间进行可靠的消息传递和操作。
对于AMQP协议先介绍这些,因RabbitMQ基于AMQP协议实现,将会借着RabbitMQ学习AMQP协议更多内容。
有关于图解JMS规范与AMQP协议是什么到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。