范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

AMQP协议介绍

  这篇文章主要介绍AMQP 0-9-1 协议,是RabbitMQ支持的协议之一,理解AQMP对于使用和理解RabbitMQ也很有帮助。
  AMQP 0-9-1(高级消息队列协议)是一种消息传递协议,它使客户端应用程序能与消息中间件进行通信。消息中间件接收Producer的消息,并将消息路由到Queue,Consumer订阅Queue,就能消费到消息。从AMQP 0-9-1 模型看,Producer发布消息到Exchange(交换器),Exchange根据绑定规则,将消息路由到一个或多个Queue。消息中间件把消息推送给订阅该Queue的Consumer,或者由Consumer从Queue上拉取消息。
  下图直观的展示了AMQP 0-9-1 协议中的角色和消息主要流转过程,其中Exchange、Bindings、Qeue是AMQP 0-9-1的主要实体。
  Exchange
  AMQP 0-9-1 定义了Exchange,用来把消息路由到Queue,路由算法依赖 Binding Rule 和 Exchange 类型,AMQP 0-9-1 提供了4种Exchange类型。
  Exchange type
  默认的预定义的名字
  Direct exchange
  (Empty string) and amq.direct
  Fanout exchange
  amq.fanout
  Topic exchange
  amq.topic
  Headers exchange
  amq.match (and amq.headers in RabbitMQ) Default Exchange
  默认的Exchange是没有名字的,它是一种特殊的Direct Exchange。所有的Queue创建完,如果没有手动设置绑定关系,自动绑定到默认的Exchange,Routing Key 和 Queue 名字相同。 Direct Exchange
  Direct Exchange 要求发布消息时设置的Routing Key 必须与 Binding Key 一致,才能路由到Queue。它常用的场景是分发消息,根据Routing Key,把消息分发给不同的Consumer。 Fanout Exchange
  Fanout Exchange忽略Binding Key,会把消息路由给所有与它绑定的Queues,类似于广播消息。 Topic Exchange
  Topic Exchange是一种比较灵活的Exchange,采用模式匹配的方式路由消息,具体的模式匹配规则由各个消息中间件实现。 RabbitMQ的实现规则在下一篇文章中更新,小伙伴慢记得关注哦。 Headers Exchange
  Headers Exchange根据消息的属性来路由消息,比如设置绑定的属性是x-product=product1,那么只有消息上有x-product=product1这个属性值时才会路由到队列。 Bindings
  Bindings是Exchange和Queue绑定的具体规则,Exchange就是根据这个Bindings路由消息到Queue的。发布消息时的Routing Key必须和Binding Key匹配,消息才能正确路由到Queue。 Queue
  Queue是实际保存消息的地方,AMQP 0-9-1规定队列名字的长度不能超过255个字节。如果客户端没有指定队列名字,Broker会自动生成队列名字,不管是哪种方式,必须保证队列名字唯一。如果申明的队列已经在Broker存在,那么就会报403错误。 持久性
  AMPQ 0-9-1 规定,队列可以申明为持久化和非持久化的,持久化队列会保存到磁盘,包括它的元数据。非持久化的队列只是保存在内存中。 Consumer
  AQMP 0-9-1 规定消费者有两种方式消费消息: Consumer订阅,Broker推送消息给Consumer,这种方式也是推荐的一种实现。优点是获取消息实时,缺点是失去了对消息控制的灵活性,比如根据机器的性能决定一次消费多少消息。 Consumer拉取消息,优点是客户端可控性高,缺点是无法准确获知消息何时到达。 消息确认
  由于网络是不可靠的,当Broker推送消息给Consumer后,无法知道这条消息是否已经被Consumer接收并正确处理了,Broker也无法判断是否可以移除这条消息。所以AMQP 0-9-1 定义了消息确认机制,有两种不同的模式:在Broker发出消息之后,这种方式容易导致消息丢失。在应用程序返回ack之后。
  默认是自动确认,也支持手动确认,推荐使用手动确认,因为客户端程序可以自己控制在何时进行消息确认。拒绝消息
  消费者处理消息有可能失败,或者当前业务逻辑无法正确处理,就可以拒绝消息,此时,消息可能会被丢弃,也有可能重新入队,取决客户端的实现。注意,当队列只有一个订阅者,避免由于处理逻辑不当造成死循环。 批量拒绝消息
  消费者可以批量接受消息,如果这批消息都无法处理,或者都处理失败,可以批量拒绝消息。 消息接收数量
  当一个队列有多个消费者订阅时,定义每个消费在下一个ack之前能接收的最大消息数量,可以实现消息的负载均衡和提高吞吐量。 消息属性
  AMQP 0-9-1 规范定义消息有元数据和消息体,元数据就是消息的属性,比如: Content type Content encoding Routing key Delivery mode (persistent or not) Message priority Message publishing timestamp Expiration period Publisher application id
  消息体就是发送到队列的具体数据,以二进制格式发送,broker接收到消息,不会处理它,根据客户端的设置,保存到磁盘或者内存。 函数列表
  AMQP 0-9-1 定义了非常丰富的函数,比如跟exchange相关的如下: exchange.declare exchange.declare-ok exchange.delete exchange.delete-ok
  完整的函数定义请参考官方 手册:https://www.rabbitmq.com/amqp-0-9-1-reference.htmlConnection
  AMQP 0-9-1 规范定义了连接是建立在TCP的可靠性连接,并且是长连接。当一个客户端不需要连接Broker,AQMP 0-9-1 规范是应该关闭AMQP的连接,而不是底层的TCP连接。 Channel
  客户端有可能需要和Broker建立多个连接,那么就需要建立多个TCP连接,而这是很消耗资源和时间的。所以AMQP 0-9-1 规范定义了通道,通道是建立在连接之上的,一个连接可以有多个通道。客户端需要建立多个连接时,可以创建多个通道,每个通过都有唯一的ID。
  当连接关闭时,在这个连接之上的所有通过都会关闭。虚拟主机
  这里的虚拟主机的概念是AQMP 0-9-1 中定义的,在一个Broker中(可以理解为一个服务)创建多个环境,用于资源隔离,每个环境中都有各自的Exchange、Bindings、Queue、用户、元数据等等,环境之间资源不会共享。
  好了,以上就是关于AMQP 0-9-1 的介绍。
  RabbitMQ系列文章会陆续更新,欢迎各位小伙伴关注后面的技术分享。

法媒外国游客缺席巴黎商家备感煎熬欧洲时报3月23日贾言编译持续已逾两年的新冠疫情造成的后遗症尚未散去,如今,由于乌克兰冲突而引发的通货膨胀前景也令人堪忧,而且,由于缺少来自非欧洲国家的外国游客,更是让法国首都巴黎A股大佬罕见重大分歧但斌默认已空仓,刘格菘董承非高喊珍惜!突发跳水,变盘时刻将临?每经记者何剑岭每经编辑吴永久图片来源摄图网500501237大家说说,自沪指从3023点反弹以来,已经在3200点上方盘了多少天了?这周一步一步地走下来,牛眼君(每经牛眼njcjn山东男篮第三外援有望出战季后赛?据自媒体报道,山东男篮签约的第三外援埃伦森已经在日前从美国飞抵国内,目前正在接受隔离观察,如果时间来得及,他还是有希望赶上山东队与深圳队的季后赛大战的。看到这则报道,真的是无限感慨淘宝京东下架老坛酸菜方便面Tech星球3月15日消息,315晚会曝光土坑酸菜乱象后,淘宝京东已搜索不到老坛酸菜相关商品。据悉,插旗菜业是湖南省华容县较大的蔬菜再加工企业,为多家知名企业代加工酸菜制品,也为一丑星巨兴茂7年赚到亿万身家,身高1。6米娶高挑娇妻改善基因对于明星来说最重要的就是外貌了,没有好的形象很难在娱乐圈混出名堂,但是老话说得好人不可貌相。今天讲的是巨兴茂,被誉为中国最丑男星,身高只有一米六,却早已成为人生赢家,做导演,娶娇妻殷桃不愧是千变女神呢,什么样的衣品都能穿出高度美阳春三月,春暖花开,万物复苏的季节到了,又到了女性友友大秀身材的季节了。很多女性朋友每天上班穿衣就很浪费时间,不会搭配,不知道穿什么好看,其实这些都是女性的通病,不足为怪。那么我们空间站为何只在400公里的高度飞,不再飞得高点呢?相信绝大多数人都有着飞入太空,遨游宇宙的梦想。因此,人们对于与航空航天有关的新闻总是显得格外的关注。载人航天的发展历程,也向我们揭示了,只要努力,那些梦想都是有可能实现的。载人飞船白酒多少度最好喝?高度酒好还是低度酒好?大把人搞错喝酒喝多少度好呢?有的人觉得喝低度酒好,因为酒精含量低,不会那么容易醉,有的人觉得喝高度酒好,对身体伤害小一点,真的是这样么?到底是高度酒好还是低度酒好?其实很多人都搞错了!高度酒泡温泉对类风湿关节炎患者有益处吗?温泉是一种从地下自然涌出的矿物质泉水,泉口温度显著高于当地年平均气温,并含有对人体健康有益的微量元素。不同水质和温度的温泉对预防和治疗疾病都有积极作用。泡温泉不仅可使肌肉关节松弛,苹果税即将到来,国产巨头给出反击,网友高度关注一直以来,苹果手机都是业内常青树,这一火就火了十年,在前段时间各大平台给出的数据来看,iPhone手机的销量要比我们国产机销量总和加起来还要多,由此可见,苹果手机是多么受欢迎。所以凯特给造型师加鸡腿?访问牙买加美出新高度,一天换三套黄裙最美凯特王妃这几天上演着时尚外交,结束了对伯利兹的访问,凯特又开启了对牙买加的访问。当地时间3月22日,凯特一天换了三套造型,一套比一套美,仿佛是在上演着时装秀。凯特换了风格后,果然是
16000株樱花竞相绽放!宝山警方多措并举保障大客流安全从2011年第一届上海樱花节至今,经过十多年的发展,顾村公园的樱花数量已达16000余株,赏樱面积也由最初的200多亩增加到目前的1500亩,扩大了7。5倍,樱花品种更由最初的282023泰国可再生能源峰会举行来源人民网国际频道原创稿2023泰国可再生能源峰会现场。人民网李源欣摄2023泰国可再生能源峰会现场。人民网李源欣摄泰国能源部替代能源开发与效率局局长普拉斯特在峰会上致辞。人民网景泰国大排档偶遇陈乔恩,带老公Alan去猛男餐厅,网友直呼太逗笑这几天,陈乔恩与老公Alan一直都在泰国度假,很多在那边旅游的网友曾偶遇到他们,由于陈乔恩穿了一套宽松的裙子,再加上又是平底鞋,很多人猜测,她是不是怀孕了。3月14日,陈乔恩与Al新西兰媒体克里斯伍德在英超中受伤,出战对中国的友谊赛存疑直播吧3月15日讯据新西兰媒体stuff消息,新西兰队史射手王克里斯伍德受伤出战与中国的友谊赛存疑。在上周末诺丁汉森林与热刺的英超比赛中,克里斯伍德下半场替补登场仅仅6分钟后就因伤在泰国如何分辨哪些是真美女哪些是人妖?说起泰国,很多人会想到泰国人妖。泰国人妖是泰国的一大特色,也是吸引很多游客到泰国旅游的原因之一。现在泰国人妖数量还是很多的,泰国人妖大部分是因为家庭条件不好,而选择成为人妖的。如果泰国旅游价格高涨引热议部分单程直飞机票近7000元,曼谷市区打车2公里60元来源海报新闻大众网海报新闻记者汪雪然报道随着疫情防控政策的调整,今年出境旅游再次火爆,而泰国更是因为距离近且签证难度低,吸引了大量游客前去游玩。大众网海报新闻记者从泰国旅游和体育部地产新闻联播丨港股内房股集体上涨碧桂园涨超701hr港股内房股集体上涨碧桂园涨超73月17日,港股内房股集体上涨。截至发稿前,浦江中国涨幅10,碧桂园涨超7,领地控股涨超6,宝龙地产绿城中国弘阳地产旭辉控股集团合景泰富集团中央行在深圳大连宁波青岛厦门设分行近日,中共中央国务院印发了党和国家机构改革方案。其中提到,统筹推进中国人民银行分支机构改革。撤销中国人民银行大区分行及分行营业管理部总行直属营业管理部和省会城市中心支行,在31个省董明珠专利维权胜诉!飞利浦空调运营公司被判赔偿格力电器250万元红星资本局3月15日消息,格力电器(000651。SZ)与飞利浦空调之间的纷争有了新进展。去年9月,格力电器就运营飞利浦空调的南京智浦供应链管理有限公司(简称南京智浦)及其销售商西315晚会内部消息新能源车企将会露脸!这十款问题车都有可能?今日,国家市场监管总局发布数据,2022年,全国12315平台接收新能源汽车投诉举报1。6万件,同比增长62。84。增速较快的问题包括合同问题(同比增长126。33)质量问题(同比张鹏程会见航投私募基金管理有限公司董事长高建明一行3月15日,高新区党工委副书记管委会主任张鹏程会见航投私募基金管理有限公司董事长高建明一行,并就开展基金合作推动储备项目落地等事宜召开座谈会。张鹏程对高建明一行的到来表示欢迎。他说