最全面透彻的RabbitMQ指南

      最后更新:2022-05-20 23:58:32 手机定位技术交流文章

      概念

      RabitMQ是一个公开源代码信息经纪人(又称中间信息经纪人),已经达成《高级新闻排队协议》。Erlang用来创建 RabibitMQ 服务器 。集群和故障转移是利用开放式电信平台建造的。所有主要程序语言的客户图书馆使用代理界面连接。

      RabitMQ 是开放源代码信件队列( MPL) 的集合 。Lshift 的高级信件封存协议(AMQP)的开源已执行 。Erlang以杰出表现、强健和可伸缩性著称,

      AMQP

      AMQP是一种类似于 HTTP 的协议,尽管HTTP 用于网络传输,而AMQP 则基于信息队列。

      AMQP 协议的基本思想

      **Broker: **

      当我们介绍信息中间部分时,我们指的是信息经纪人信息系统。

      **Virtual host: **

      它是为多租户和安全目的建立的。AMQP的基本组成部分组成一个虚拟小组。类似于网络的命名空间想法。当许多不同的用户使用同样的RabibitMQ服务器时,他们可以使用该服务器提供的服务。有可能将它分割成无数的幽灵每个用户都在其虚拟主机中建立交换/ queue, 例如 。

      「Connection:」

      公共/消费者与经纪人之间的 TCP 连接。 中断连接程序只发生在客户身上, 经纪人不会中断连接, 除非有网络故障或与经纪人服务有问题 。

      **Channel: **

      如果每次访问兔子会建立连接,它将能够找到摆脱困境的解决办法。在信息大量流动的时期建立TCP连接的费用将是巨大的。效率也较低。频道是一个在连接中形成的逻辑链接 。如果程序允许许多线索,每条线,默认情况下, 都会建立自己的通讯频道 。AMQP方法包括帮助客户和断信器识别频道的频道代号。因此,海峡完全孤立。使用轻量级连接 " 通道 " 大大减少了在建立TCP连接方面的操作系统成本。

      「Exchange:」

      这封信是在布洛克的初站寄来的根据分发规则,在查询表格中,有一个匹配的根键。将信件放在队列上。最经常使用的种类是直接(点对点)、专题(公共规范)和煽动。

      **Queue: **

      新闻终于被传送到这里,由消费者接收。 信息可以同时复制成不止一个队列。

      「Binding:」

      绑定信息以查询表形式保存,以倒置方式保存,用作信件分发的基础。绑定信息以查询表形式存储,以倒置方式存储,以用作信件分发的基础。

      交换类型

      「direct :」

      这种开关的路线规则基于路由键的签名。划线键连接开关到队列。你知道,你知道,你知道,你知道,你知道,你知道, 你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,你知道,

      「fanout:」

      开关路径是直截了当的,只要他与队列连在一起,他就把信息发送到柜台。

      「topic:」

      * 因为这台笔记本电脑里有一个关键词因此,以下已被恒星所取代。 除此专题外, 此类开关的路线规则也与路由密钥相关 : # (星号正在过滤一个单词 。){fn方正粗倩简体fs12an81cHFF00b0}这些是过滤器隐藏的唯一单词假设我有一排 A 和 B 是 : 恒星。 用户 B 的根键是 : 用户

      然后我会发送一条信息给根基密钥 : 错误 。 在此时刻, 两个队列都会被接受, 直到它改变为主题 。 抱歉, 错误 。 那么只有 B 可能在这个时候使用它 。

      「headers:」

      这种开关很少使用, 他的路线规则与路由键无关, 但可以通过评估信头参数来检测, 几乎没有应用, 因为上面的三种类型可以管理它 。

      执行过程

      一. 用户建立与信件队列服务器的连接, 并启动“ 频道 ” 。

      2. 客户对交易所进行定义并配置其属性。

      三,客户宣布一个队列并配置其属性。

      四. 客户使用路标键在交易所和队列之间建立有约束力的联系。

      5. 无法打开文件夹“%s”:%s

      这个故事是我们对2011年埃及抗议的特别报导的一部分。根据《新闻》和先前定义的《约束》进行消息路由,无法将信件附加到 mh 文件夹:%s:%s交易所分为三类:直接交易、间接交易和第三方交易。fanout,topic,每个人获得一种独特的路径算法:

      消息的ack机制

      默认情况下, 如果信件被消费者适当接收, 则将信件从队列中删除。 当然, 同一信件可能会被发送给众多消费者 。

      如果没有消费者订户(订阅)使用队列,那么,如果数据在这个队列中出现,因此,这些数据将被隐藏起来。不会被丢弃。如果有消费者,这些资料将立即送交客户。当消费者适当收到信息时,此信息已从队列中删除 。

      消息持久化

      RabitMQ提供信息耐久性,即数据储存在磁盘上,大多数用户选择数据安全考虑的耐久性。

      1.Exchange持久化,在声明时指定durable => 1

      2.Queue持久化,在声明时指定durable => 1

      3.消息持久化,在投递时指定delivery_mode => 2(1是非持久化)

      如果交易所和Quue都可持续,交易所和Quue之间的捆绑是可持续的,只要交易所和Quee之间有持久的关系,而且不可持续性妨碍约束力的发展。

      特性

      可伸缩性:集群服务

      无法将信件附加到 mh 文件夹:%s:%s

      支持的操作系统

      1、Linux

      视窗NT到10

      3、VxWorks

      4、macOS

      5、FreeBSD

      微软 Windows 服务器 2003-2016

      7、Solaris

      8、TRU64

      支持的编程语言

      1、Swift

      2、Java

      3、Elixir

      4、Python

      5、JavaScript

      6、Objective-C

      7、Go

      8、Ruby

      9、C#

      7、Ruby

      8、PHP

      使用场景

      1. 脱钩(面向服务的架构(SOA)具有深远的根本最终一致性)

      2. 异步提升效率

      3. 在新闻队列中也可以看到的流量高峰也经常用于第二层暗杀或帮派突袭。

      优缺点

      在某种特定情况下,如脱钩、不对称和立木采伐,他们的反应是有利的。

      「缺点」

      1. 系统效用减少。

      该系统引入的外部依赖性越大,越容易挂断。

      2. 系统复杂性增加。

      随着MQ的引入,必须解决的关切数量成倍增加。 我们如何防止信息被重复?我们如何确保信息不被误解?我们如何确保信息被正确传达?

      3、一致性问题

      系统直接返回信息, 但是如果 BCD 系统中的系统存储器失败, 则存在数据不一致性问题, 原因是分散的事项 。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/25530.html

          热门文章

          文章分类