![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitMQ
文章平均质量分 80
CrazyHSF
这个作者很懒,什么都没留下…
展开
-
rabbitMQ插件实现延时队列引发的事故
对,你没有看错,上一篇分享插件使用,现在分享插件引发的事故大背景:使用延迟队列的目的是要对一部分MQ数据做延迟查询,具体如下:场景: 生产者(业务方)发送MQ消息,消费者(数据服务)接收到MQ之后,查询业务方数据,之后做计算并落库存在问题:业务方使用主从分离模式,写主,读从。所以当消费者接收到MQ之后去查询业务方接口,业务方查询的其实是从库,这个时候数据很有可能就不一致,实际情况下看10%左右的概率会出现从服务分层的角度讲,这个问题并不应该数据服务解决,因为数据服务就应该信任接口的数据,在当时的那原创 2021-05-14 17:41:40 · 676 阅读 · 0 评论 -
通过rabbitMQ插件实现延时队列
插件:rabbitmq-delayed-message-exchange官方说明因为是运维小哥安装,并不知道具体的步骤,略过安装完的效果:新增Exchange的地方会多一个选项 delayed-message但是单独选择这个类型是不能添加成功的会提示错误原因应该是本来的type被选择为 delayed-message 就不能选择具体的Exchange路由类型了 所以这里需要增加一个参数 x-delayed-type ,通过这个参数来确定路由类型,即原来的type,官放文档也指出这个参数是必原创 2021-03-02 16:12:32 · 569 阅读 · 0 评论 -
利用RabbitMQ消息TTL、队列TTL、DLX 实现延时队列
概念TTL(Time To Live) 生存时间(消息有效期等)DLX (Dead letter exchange)死信交换机场景X秒之后查询某订单支付结果B服务更新数据时发出MQ,A服务消费该MQ查询B服务数据并听不到自己数据库,B服务使用主从分离,主从存在延时,A、B服务数据可能不一致X分钟后重试请求实现逻辑RabbitMQ原生不支持延迟队列,但是RabbitMQ的消息可以有生存时间(TTL),并且可以在消息生存时间结束之后可以转送到指定的DLX中,这样就可以将一个exchange作原创 2021-02-26 18:01:03 · 360 阅读 · 0 评论