首页 > 其他分享 >RabbitMQ 相关概念及简述

RabbitMQ 相关概念及简述

时间:2024-08-25 15:48:19浏览次数:10  
标签:AMQP 队列 JMS RabbitMQ 概念 简述 MQ 消息

总结自:BV15k4y1k7Ep

RabbitMQ 是一款常用的消息队列(MQ)。

什么是消息队列

MQ 全称为 Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信。

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合异步消息流量削锋等问题(参见消息队列作用)。

1.2. AMQP 和 JMS

MQ 是消息通信的模型;实现 MQ 大致有两种主流方式:AMQP、JMS。

1.2.1. AMQP

AMQP 是一种协议,更准确的说是一种 binary wire-level protocol(链接协议)。这是其和 JMS 的本质差别,AMQP 不从 API 层进行限定,而是直接定义网络交换的数据格式。

1.2.2. JMS

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

1.2.3. AMQP 与 JMS 区别

  • JMS 是定义了统一的接口,来对消息操作进行统一;AMQP 是通过规定协议来统一数据交互的格式。
  • JMS 限定了必须使用 Java 语言;AMQP 只是协议,不规定实现方式,因此是跨语言的。
  • JMS 规定了两种消息模式;而 AMQP 的消息模式更加丰富。

1.3. 消息队列产品

市场上常见的消息队列有如下:

  • ActiveMQ:基于 JMS
  • ZeroMQ:基于 C 语言开发
  • RabbitMQ:基于 AMQP 协议,Erlang 语言开发,稳定性好
  • RocketMQ:基于 JMS,阿里巴巴产品
  • Kafka:类似 MQ 的产品;分布式消息系统,高吞吐量

1.4. RabbitMQ

RabbitMQ 是由 Erlang 语言开发,基于 AMQP(Advanced Message Queue Protocol 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

RabbitMQ 官方地址:http://www.rabbitmq.com/

RabbitMQ 提供了 6 种模式:

  1. 简单模式;
  2. Work queues 工作队列模式;
  3. Publish/Subscribe 发布与订阅模式;
  4. Routing 路由模式;
  5. Topics 主题模式;
  6. RPC 远程调用模式(远程调用,不太算 MQ)。

官网对应模式介绍:https://www.rabbitmq.com/getstarted.html

1555988678324

标签:AMQP,队列,JMS,RabbitMQ,概念,简述,MQ,消息
From: https://www.cnblogs.com/Higurashi-kagome/p/18378679

相关文章

  • RabbitMQ 入门示例
    参考:BV15k4y1k7EpRabbitMQ相关概念及简述中简单介绍了RabbitMQ提供的6种工作模式。下面以简单模式为例,介绍RabbitMQ的使用。新建工程先新建Maven工程RabbitMQ作为父工程,在父工程下新建三个子模块:common:公共包producer:生产者consumer:消费者在三个模块中添加......
  • 消息队列-RabbitMQ学习笔记(一)
    1.什么是消息队列消息队列(MessageQueue,简称MQ)是一种用于在应用程序之间传递消息的技术,通常在分布式系统中使用。它提供了一种异步通信机制,使得应用程序可以通过发送和接收消息来进行数据交换。消息队列可以用来存储消息,这就涉及到消息队列的三个关键字:存储、消息、队列......
  • CentOS7 安装及配置 RabbitMQ
    主要总结自:Centos7安装RabbitMQ1、安装前准备由于RabbitMQ使用的是Erlang语言开发的,因此在安装RabbitMQ之前需要安装Erlang环境,Erlang与RabbitMQ的下载地址分别为:Erlang:https://github.com/rabbitmq/erlang-rpm/releasesRabbitMQ:https://github.com/rabbitmq/rabbitmq-ser......
  • 网络流概念补充
    基本概念补充:1.网络流可以有环2.网络流中不存在反向边,即若\((u,v)∈E\),则\((v,u)∉E\)(如果有\((v,u)∈E\)的话,可以添加一个点\(w\),将\((v,u)\)变成\((v,w),(w,u)\),所以任意一个有反向边的图都可以转化成没有反向边的图);这样的话考虑问题更加简便(蓝书的网络流考虑了三条定律,但存在......
  • 读软件开发安全之道:概念、设计与实施08密码学(下)
    1. 对称加密1.1. symmetricencryption1.2. 使用各方共享的密钥来隐藏数据1.2.1. 对称加密在本质上依赖共享密钥1.3. 所有加密都是通过对明文进行转换,把明文消息(或者原始消息)变成无法识别的形式(也称为密文)​,从而隐藏原始消息内容的1.4. 可逆的转换称为对称加密,因为......
  • 透明性和解释性AI:概念与应用
            随着人工智能(AI)技术的迅猛发展,AI系统在日常生活、工业生产、医疗健康等领域的应用日益广泛。然而,随着AI系统的复杂性和影响力不断增加,透明性(Transparency)和解释性(Explainability)成为了AI研究和应用中的两个重要问题。本文将详细探讨透明性和解释性AI的概念、其......
  • RabbitMQ 从原理到实战—golang版本
    1.MQ1.1概念MQ(MessageQueue,消息队列)是一种用于在分布式系统中实现消息传递和异步通信的技术。它充当了发送方和接收方之间的中间人,用于在应用程序或服务之间传递消息。MQ允许系统中的不同组件彼此独立运行,而无需直接通信或相互依赖,从而提高系统的可扩展性、可靠性和灵......
  • Flutter一些概念(一)
    1简述Flutter是什么以及它的主要优势Flutter是一种由Google开发的开源移动应用开发框架,可以用于构建高度定制化、美观并且性能卓越的移动应用程序,其主要优势有:跨平台,一次编码,可编译适配多个平台的应用(iOS,Android,Web)等,可大大减少开发时间和成本;高性能,Flutter的性能接近于......
  • TensorFlow 的基本概念和使用场景
    TensorFlow是一个开源的机器学习框架,由Google开发和维护。它允许开发者使用图形计算的方式构建和训练机器学习模型。TensorFlow的基本概念如下:张量(Tensor):TensorFlow使用张量来表示数据。张量是多维数组,在计算图中流动,是TensorFlow的基本数据单元。张量可以是标量(0维数组)、......
  • 什么是大模型?一文读懂大模型的基本概念_看完这篇就足够了~
    大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参考作用。本文目录如下:·大模型的......