RabbitMQ的三种编程模型
作者:互联网
基础概念
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时,那么当队列空闲且没有连接时会自动删除。
仲裁队列
仲裁队列比经典队列安全性要高些,但是有功能比经典队列少一些,如下图所示。仲裁队列对毒消息进行了支持,所谓毒消息就是经过多次消费但是未消费成功的消息,当产生毒消息时,仲裁队列会将毒消息删除,如果配置了死信队列毒消息则会进入死信队列,可以配置x-delivery-count参数来设置投递次数,如果消费消息超过这个次数还没成功则会变成毒消息。仲裁队列使用场景是对数据安全性高,低容错、高延迟的场景中使用。
Stream队列
标签:Exchange,队列,编程,RabbitMQ,三种,消息,设置,仲裁 来源: https://www.cnblogs.com/lyraHeartstrings/p/16380510.html