RabbitMq
无盐海
太过安逸的日子给人未必是幸福,它很有可能毁了一个人的理想,腐蚀一个人的心灵
展开
-
MQ
消息的确认模式消费者从队列中获取消息,服务端如何知道消息已经被消费呢?模式1:自动确认只要消息从队列中获取,无论消费者获取到消息后是否成功消息,都认为是消息已经成功消费。模式2:手动确认消费者从队列中获取消息后,服务器会将该消息标记为不可用状态,等待消费者的反馈,如果消费者一直没有反馈,那么该消息将一直处于不可用状态。Ack,Nack,Reject的关系 1. 消息处理成功,执行Ack,RabbitMQ会把消息从队列中删除。 2. 消息处理失败,执行Nack或者Reje..原创 2021-01-05 11:03:44 · 165 阅读 · 0 评论 -
windows10 安装 RabbitMq
RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现的工业级的消息队列(MQ)服务器。RabbitMQ的官方下载网站:https://www.rabbitmq.com/download.html AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而...原创 2020-12-26 01:26:44 · 300 阅读 · 0 评论 -
Net中使用 RabbitMq | 消息的幂等性
出现非幂等性的情况1、生产者已把消息发送到mq,在mq给生产者返回ack的时候网络中断,故生产者未收到确定信息,生产者认为消息未发送成功,但实际情况是,mq已成功接收到了消息,在网络重连后,生产者会重新发送刚才的消息,造成mq接收了重复的消息2、消费者在消费mq中的消息时,mq已把消息发送给消费者,消费者在给mq返回ack时网络中断,故mq未收到确认信息,该条消息会重新发给其他的消费者,...原创 2019-04-19 23:24:12 · 320 阅读 · 0 评论 -
Net中使用 RabbitMq | 死信队列
11原创 2019-04-19 23:18:40 · 480 阅读 · 0 评论 -
Net中使用 RabbitMq | Confirm确认消息
RabbitMQ 消息确认机制 - 消费者确认由于生产者和消费者不直接通信,生产者只负责把消息发送到队列,消费者只负责从队列获取消息(不管是push还是pull).消息被"消费"后,是需要从队列中删除的.那怎么确认消息被"成功消费"了呢?是消费者从队列获取到消息后,MQ服务器 就从队列中删除该消息?那如果消费者收到消息后,还没来得及"消费"它,或者说还没来得及进行业务逻辑处理时,...原创 2019-04-17 15:30:10 · 1399 阅读 · 0 评论 -
Net中使用 RabbitMq | Return 消息不可达处理机制
生产者通过指定一个 exchange 和 routingkey 把消息送达到某个队列中去,然后消费者监听队列,进行消费处理。但是在某些情况下,如果我们在发送消息时,当前的 exchange 不存在或者指定的 routingkey 路由不到,这个时候如果要监听这种不可达的消息,就要使用 return项目建议先启动消费端,再启动生产端(因为我的交换机和队列都是在消费端创建的,交换机与队列绑定指定的...原创 2019-04-17 16:21:57 · 599 阅读 · 0 评论 -
Net中使用 RabbitMq | Message 消息内容
Message:它是服务器和应用程序之间传送消息数据Message:本质上就是一段数据,由Properties和PayLoad(Boby)组成Message常用属性Delivery mode: 是否持久化,1 :Non-persistent(非持久化),2 :Persistent(持久化)Headers:自定义属性:自定义属性一般放到Headers中,进行发送content_...原创 2019-04-16 15:17:36 · 656 阅读 · 0 评论 -
Net中使用 RabbitMq | Fanout ExChange 广播模式(分发模式)
Fanout ExChange属于广播模式(分发模式),因为这种模式不走路由,所以它的性能是最高的RabbitMQ中的Exchange有四种类型,不同的类型有着不同的路由策略,RabbitMQ常用的Exchange Type有fanout、direct、topic、headers这四种。Exchange是按照什么逻辑将消息路由到Queue的?RabbitMQ中通过Binding将Excha...原创 2019-04-16 14:30:52 · 760 阅读 · 0 评论 -
Ubuntu 16.04 安装RabbitMQ
RabbitMq简介RabbitMQ 是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据(这句话的含义就是可以跨平台,跨语言的)RadditMQ 是使用Erlang语言来编写的并且RabbitMQ是基于AMQP协议的什么是AMQP高级消息队列协议?AMQP全称:Advanced Message Queuing Protocol(中文:高级消息队列协议)...原创 2019-04-14 01:58:06 · 957 阅读 · 0 评论 -
Net中使用 RabbitMq | Direct ExChange 直连模式(路由模式)
RabbitMQ提供了四种Exchange:direct, topic, fanout, headerheader模式在实际使用中较少,本文只对前三种模式进行比较。Direct ExChange属于直连模式,直连模式就是 Exchange 通过 指定的RoutingKey 将 消息转发到与之绑定的Queue中注:可以这样理解:生产者想发送一条消息到指定的Queue队列中,首先这条消息会...原创 2019-04-15 21:03:10 · 473 阅读 · 0 评论 -
Net中使用 RabbitMq | Topic ExChange 模糊路由模式(主题模式)
RabbitMQ提供了四种Exchange:direct, topic, fanout, headerheader模式在实际使用中较少,本文只对前三种模式进行比较。Topic ExChange属于模糊连接模式(主题模式),直连模式就是 Exchange 通过 指定的RoutingKey 将 消息转发到与之绑定的Queue中注:可以这样理解:生产者想发送一条消息到指定的Queue队列...原创 2019-04-15 21:27:52 · 568 阅读 · 0 评论