
消息队列
刘彦青-Yannis
这个作者很懒,什么都没留下…
展开
-
如何处理消息队列消费过程中的重复消息
在 MQTT 协议中,给出了三种传递消息时能够提供的服务质量标准,这三种服务质量从低到高依次是:At most once: 至多一次。消息在传递时,最多会被送达一次。换一个说法就是,没什么消息可靠性保证,允许丢消息。一般都是一些对消息可靠性要求不太高的监控场景使用,比如每分钟上报一次机房温度数据,可以接受数据少量丢失。At least once: 至少一次。消息在传递时,至少会被送达一次。也...原创 2020-02-25 17:29:30 · 1118 阅读 · 0 评论 -
消息队列如何保证消息不丢失
检测消息丢失布式链路追踪系统如果是 IT 基础设施比较完善的公司,一般都有分布式链路追踪系统,使用类似的追踪系统可以很方便地追踪每一条消息。利用消息队列的有序性来验证Producer端,我们给每个发出的消息附加一个连续递增的序号,然后在Consumer端来检查这个序号的连续性,连续则没有丢失,不连续则丢失,还能知道丢的是哪条消息。大多数消息队列的客户端都支持拦截器机制,你可以利用这...原创 2020-02-25 17:11:24 · 926 阅读 · 0 评论 -
如何实现幂等性
什么是幂等幂等本来是数学上的概念,它的定义是这样的: 如果一个函数 f(x) 满足:f(f(x)) = f(x),则函数 f(x) 满足幂等性。在计算机领域用来描述一个操作、方法或者服务。一个幂等操作的特点是,其任意多次执行所产生的影响均与一次执行的影响相同。场景将林志玲账户的余额加 100 元方法一:利用数据库的唯一约束实现幂等我们在数据库中建一张转账流水表,这个表有三个字段:...原创 2019-11-14 17:09:47 · 4971 阅读 · 0 评论 -
基于消息队列实现分布式事务
给予消息队列实现分布式事务场景:订单系统产生订单,购物车系统减购物车中的商。实现思路 :1. 订单系统在消息队列上开启一个事务(没有创建订单)。2. 订单系统给消息服务器发送一个“半消息”,这个半消息不是说消息内容不完整,它包含的内容就是完整的消息内容,半消息和普通消息的唯一区别是,在事务提交之前,对于消费者来说,这个消息是不可见的。3. 半消息发送成功后,订单系统就可以执行本地事...原创 2019-11-13 18:21:10 · 1897 阅读 · 0 评论