2023-07-06:RabbitMQ中的AMQP是什么?

这篇具有很好参考价值的文章主要介绍了2023-07-06:RabbitMQ中的AMQP是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023-07-06:RabbitMQ中的AMQP是什么?

答案2023-07-06:

AMQP

AMQP(Advanced Message Queuing Protocol)是一个应用层协议的开放标准,旨在设计面向消息的中间件。基于AMQP协议的客户端和消息中间件可以自由地传递消息,不受客户端、中间件产品或开发语言的限制。其目标是实现一种被广泛应用于各行业的标准消息中间件技术,以降低企业和系统集成的成本,并提供工业级的集成服务。RabbitMQ是AMQP协议的一个主要实现。

2023-07-06:RabbitMQ中的AMQP是什么?,福大大架构师每日一题,rabbitmq,ruby,分布式

客户端与RabbitMQ的通讯

连接

作为客户端(生产者或消费者),要与RabbitMQ通信,首先需要建立一条TCP连接。在建立连接后,客户端需要发送一条"问候语",以确保彼此都遵循AMQP协议。这类似于与他人打招呼时说"你好",或者与外国人打招呼时说"hello"。一旦确认了使用相同的"语言",客户端和RabbitMQ就完成了"认证"。然后,它们可以创建一个AMQP信道来进行通信。

信道

信道是生产者和消费者与RabbitMQ进行通信的通道。它是在TCP连接上建立的虚拟连接。这意味着RabbitMQ可以在一条TCP连接上创建多个信道,以便处理多个线程。每个线程对应一个唯一的信道ID,从而保证了信道的私有性,并与特定的线程相关联。

为什么不使用多个TCP连接呢?这是因为通过多路复用技术,RabbitMQ可以在单个TCP连接上支持成百上千的信道。每秒创建和销毁大量的TCP连接对系统性能消耗较大。因此,选择在一条TCP连接上建立多个信道是为了保证性能。

从技术上讲,这被称之为“多路复用”,对于执行多个任务的多线程或者异步应用程序来说,它非常有用。

虚拟主机

虚拟主机(Virtual Host),简称vhost,实质上是一个精简版的消息队列服务器,拥有自己的队列、交换器和绑定,而且最重要的是具备独立的权限机制。虚拟主机能够在逻辑上实现客户端之间的隔离,避免队列和交换器名称的冲突。在连接到RabbitMQ时,必须指定虚拟主机。RabbitMQ默认包含一个名为"/"的虚拟主机,通过默认的用户和密码(guest)进行访问。

在RabbitMQ中创建用户时,必须将其分配给至少一个虚拟主机,并且该用户只能访问其所分配的虚拟主机中的队列、交换器和绑定。虚拟主机的创建需要通过RabbitMQ的管理控制工具进行操作。

交换器类型

交换器类型共有四种:direct、fanout、topic和headers。其中,headers类型与direct类型非常相似且不常使用,可以忽略不计。

Direct

Direct交换器是一种路由键完全匹配的交换器类型,它将消息按照路由键的完全匹配进行投递到相应的队列。Direct交换器是RabbitMQ的默认交换器。当声明一个队列时,它会自动绑定到默认的Direct交换器,并以队列名称作为路由键进行消息的发布:channel->basic_public($msg,’’,’queue-name’)。

2023-07-06:RabbitMQ中的AMQP是什么?,福大大架构师每日一题,rabbitmq,ruby,分布式

Fanout

Fanout交换器将消息广播到所有绑定的队列,不管队列是否绑定了特定的路由键。当消息经过Fanout交换器时,每个队列都会收到一份复制的消息。

2023-07-06:RabbitMQ中的AMQP是什么?,福大大架构师每日一题,rabbitmq,ruby,分布式

Topic

Topic交换器通过使用“”和“#”通配符来处理消息的路由键,从而将来自不同源头的消息投递到同一个队列。在Topic交换器中,路由键可以包含多个标识符,通过使用“.”进行分隔。“”通配符用于匹配一个标识符,而“#”通配符用于匹配一个或多个标识符。

2023-07-06:RabbitMQ中的AMQP是什么?,福大大架构师每日一题,rabbitmq,ruby,分布式文章来源地址https://www.toymoban.com/news/detail-527180.html

到了这里,关于2023-07-06:RabbitMQ中的AMQP是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么

    🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······ 😎人生感悟:尝尽人生百味,方知世间冷暖。

    2024年02月10日
    浏览(30)
  • 互联网摸鱼日报(2023-06-07)

    InfoQ 热门话题 解决真实工业场景痛点问题,工业互联网技术产业应用走向深水区 百度智能云推出代码助手Comate,覆盖30种编程语言,正式开放邀测 FATE-LLM新版本发布,支持中文大语言模型ChatGLM-6B联邦化训练 北纬三十度集团 CTO 技术合伙人孔凡勇确认担任 ArchSummit 深圳专题出

    2024年02月08日
    浏览(69)
  • 理解RabbitMQ中的AMQP-0-9-1模型(1),学web前端开发有前途

    消息中间件代理不仅仅提供了消息接收和消息路由这两个基本功能,还有其他高级的特性如消息持久化功能、监控功能等等。 AMQP-0-9-1模型的基本视图是:消息发布者消息发布到交换器(Exchange)中,交换器的角色有点类似于日常见到的邮局或者信箱。然后,交换器把 消息的副本

    2024年04月28日
    浏览(32)
  • 2023-07-07 LeetCode每日一题(过桥的时间)

    点击跳转到题目位置 共有 k 位工人计划将 n 个箱子从旧仓库移动到新仓库。给你两个整数 n 和 k,以及一个二维整数数组 time ,数组的大小为 k x 4 ,其中 time[i] = [leftToRighti, pickOldi, rightToLefti, putNewi] 。 一条河将两座仓库分隔,只能通过一座桥通行。旧仓库位于河的右岸,新仓

    2024年02月15日
    浏览(37)
  • 2023-07-11力扣每日一题

    链接: https://leetcode.cn/problems/maximum-alternating-subsequence-sum/ 题意: 给定一个数组,求一个子序列,使这个子序列的 奇数位和-偶数位和 最大(下标从1开始的话|反正第一个数是+) 解: 找下坡,曲折处两个分下坡大于一个总下坡(如图) 实际代码: 思维: DP?: 限制: 1 = nu

    2024年02月15日
    浏览(59)
  • 2023-07-12力扣每日一题

    链接: 2544. 交替数字和 题意: 一个数字字符串,根据符号求和,符号规律+ - + - +… 解: 简单题,遍历 实际代码: 手写: 函数!小子: 限制: 1 = n = 109

    2024年02月15日
    浏览(47)
  • 2023-07-16力扣每日一题

    链接: 834. 树中距离之和 题意: 给定一个树,有n个节点,需要得到每个节点与其他节点的距离和 解: 还以为是弗洛伊德,一看范围3E4直接晕倒 想了四个小时,实在是想不出来了,看了一下评论里的转移公式 设 DP[i] 为节点 i 与其他节点的距离和, DP[F] 是节点 i 的父节点与

    2024年02月16日
    浏览(38)
  • 2023-07-27力扣每日一题

    链接: 2500. 删除每行中的最大值 题意: 简单题,每次删除每一行的最大值,存储每次删除中最大的数字 解: 对行排序,每一列取最大值 实际代码: 限制: m == grid.length n == grid[i].length 1 = m, n = 50 1 = grid[i][j] = 100

    2024年02月15日
    浏览(34)
  • 2023-07-29力扣每日一题

    链接: 141. 环形链表 题意: 求链表是否有环 解: 刚好昨天做完的初级算法链表题,翻转和暴力 实际代码: 限制: 链表中节点的数目范围是 [0, 104] -105 = Node.val = 105 pos 为 -1 或者链表中的一个 有效索引 。

    2024年02月15日
    浏览(37)
  • 2023-07-15力扣每日一题

    链接: 18. 四数之和 题意: 一个数组n,一个目标值t,在数组内找四个数字和等于t,求能有多少种组合 解: 0716:一看怎么昨天卡没打,原来昨天做的第一题不是每日一题,麻了 n很小,200,那么 先排序 ,然后弄一个 双指针开双循环 l,r ,确定每个组合的最大数字-数字4和最

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包