MQ
H_菲斯塔
这个作者很懒,什么都没留下…
展开
-
如何保证消息的顺序性?
我举个例子,你在 mysql 里增删改一条数据,对应出来了增删改 3 条 日志,接着这三条发送到 MQ 里面,再消费出来依次执行,起码得保证人家是按照顺序来的吧?不然本来是:增加、修改、删除;你楞是换了顺序给执行成删除、修改、增加,不全错了么。 本来这个数据同步过来,应该最后这个数据被删除了;结果你搞错了这个顺序,最后这个数据保留下来了,数据同步就出错了。 先看看顺序会错乱的俩场景: Rabb...原创 2020-04-07 09:32:04 · 189 阅读 · 0 评论 -
如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题
如果说你这个是用 MQ 来传递非常核心的消息,比如说计费、扣费的一些消息,那必须确保这个 MQ 传递过程中绝对不会把计费消息给弄丢。 数据的丢失问题,可能出现在生产者、MQ、消费者中,咱们从 RabbitMQ 和 Kafka 分别来分析一下吧。 RabbitMQ 生产者弄丢了数据 生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。 此时可以选择用...原创 2020-04-07 09:18:23 · 139 阅读 · 0 评论 -
RabbitMQ和Kafka 如何保证消息队列的高可用?
** 先来说下RabbitMQ的高可用 ** RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,所以主要是讨论RabbitMQ的高可用,RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。 单机模式: - 单机模式,就是 Demo 级别的,一般就是你本地启动了玩玩儿的,没人生产用单机模式。 普通集群模式(无高可用性) - 普通集群模式,意思就是在多台机器...原创 2020-04-07 08:36:57 · 187 阅读 · 0 评论 -
如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性
首先,比如 RabbitMQ、RocketMQ、Kafka,都有可能会出现消息重复消费的问题,正常。因为这问题通常不是 MQ 自己保证的,是由我们开发来保证的。 举个例子吧。假设你有个系统,消费一条消息就往数据库里插入一条数据,要是你一个消息重复两次,你不就插入了两条,这数据不就错了?但是你要是消费到第二次的时候,自己判断一下是否已经消费过了,若是就直接扔了,这样不就保留了一条数据,从而保证了数据...原创 2020-04-07 08:06:03 · 198 阅读 · 0 评论