码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ 2

时间:2020-11-19 12:02:00      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:bit   creat   routing   依赖   ORC   提交   集群   主题   false   

RabbitMQ :

1.优先级队列
交换机exchange揭秘
direct交换机 (直接交换器)
fanout交换机 (广播是式交换器)
topic交换机 (主题交换器)
headers交换机 (消息体的header匹配)
消息持久化,消息扩容


1. Direct(直接交换器) Exchange:直接交换器,工作方式类似于单播,Exchange会将消息 发送完全匹配ROUTING_KEY的Queue
2 Fanout(绑定式交换器)Exchange:fanout类型的Exchange路由规则非常简单,它会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中
3 Topic (主题交换器) Exchange:通配符,模糊匹配绑定
4 Header (消息体的header匹配) Exchange:不依赖于routing key与binding key的匹配规则来路由消息,any或者all。如果设置为any,意思就是只要匹配到了headers表中的任何一对键值


2.消息确认机制
消息事务机制
分布式异步队列事务问题
RabbitMQ集群
RabbitMQ普通集群
RabbitMQ镜像集群

消息确认机制:
Confirm模式
Tx事务模式
Confirm模式:就是应答模式,生产者发送一条消息之后,Rabbitmq服务器做了个响应,OK,收到了;
Tx事务模式:基于AMPQ协议;可以让信道设置成一个带事务的信道,分为三步:
1.开启事务
2.提交事务
3.支持回滚
Confirm模式:异步模式,在应答之前,可以继续发送消息;单条消息、批量消息
事务模式:同步模式,在事务提交之前不能继续发送消的
事务模式效率差一些;

0.channel.ConfirmSelect();开启确认模式
1. 单条消息确认: channel.waitForConfirms()
2。批量消息确认: channel.waitForConfirmsOrDie()批量确认模式
3。 异步监听消息确认:channel.addConfirmListener()

channel.ConfirmSelect();开启确认模式
消息发送以后,提供一个回执方法WaitForConfirms(); 返回一个bool 值


从AMQP协议层面上来的事务模式;
channel.TxSelect(); 开启一个事务
channel.TxCommit();提交事务
channel.TxRollback(); //事务回滚

 

//手动确认 消息正常消费 告诉Broker:你可以把当前这条消息删除掉了
channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);

//autoAck: true 自动确认;
channel.BasicConsume(queue: "ConsumptionACKConfirmQueue", autoAck: false, consumer: consumer);

//设置优先级
IBasicProperties props = channel.CreateBasicProperties();
props.Priority = 1;

RabbitMQ 2

标签:bit   creat   routing   依赖   ORC   提交   集群   主题   false   

原文地址:https://www.cnblogs.com/csj007523/p/13970197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!