ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

RabbitMQ的三种编程模型

2022-06-16 01:00:50  阅读:199  来源: 互联网

标签:Exchange 队列 编程 RabbitMQ 三种 消息 设置 仲裁


基础概念

image

virtual host

虚拟主机,可以理解为RabbitMQ中的每个服务,每个Virtual Host之间是相互隔离的,他们之间有不同的权限

Connection

通过使用Connection建立TCP连接来与RabbitMQ进行交互

Chanel

通过连接可以获取Channel,每个channel都哟一个唯一的ID,通过使用Channel可以对操作RabbitMQ,如创建队列、交换机、发送消息等等。

Exchange

当消息发送的Exchange中时,可以根据Exchange的路由规则,使之将消息转发至不同的队列中,需要注意的是,Exchange不是必须要有的,也可以不指定Exchange,直接指定队列来发送消息。

Queue

一种先进后出的数据结构,生产者将消息放入到队列中,而消费者从队列中获取消息来消费。

经典队列

经典队列拥有较高的可靠性,通过设置Durability来设置消息的持久化,一旦设置额消息的持久化,当消息存到消息队列中,会存储到硬盘中,因为该过程经过了IO,所以性能会变低些。
如果设置AutoDelete为ture时,那么当队列空闲且没有连接时会自动删除。
image

仲裁队列

仲裁队列比经典队列安全性要高些,但是有功能比经典队列少一些,如下图所示。仲裁队列对毒消息进行了支持,所谓毒消息就是经过多次消费但是未消费成功的消息,当产生毒消息时,仲裁队列会将毒消息删除,如果配置了死信队列毒消息则会进入死信队列,可以配置x-delivery-count参数来设置投递次数,如果消费消息超过这个次数还没成功则会变成毒消息。仲裁队列使用场景是对数据安全性高,低容错、高延迟的场景中使用。
image

image

Stream队列

标签:Exchange,队列,编程,RabbitMQ,三种,消息,设置,仲裁
来源: https://www.cnblogs.com/lyraHeartstrings/p/16380510.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有