面试官心理剖析: 主要是看你对消息队列数据重复消费的问题,是否有了解,是否知道怎么解决?如果这块不知道,那么面试官会觉得如果交给你做功能,可能会出现多次消费的情况。 回答: 为什么会出现重复消费? 分析: 如图,在什么场景会出现消息重复消费?比如说消费端已经消费了 offset ...
什么是消息的幂等性 如果同一个消息,因为各种原因,不慎被消费了多次 例如多次点按按钮 ,和只消费一次得到的数据是相同的。就可以说保持了幂等性。 如果我们不人为保证消息的幂等性,数据就会出错。可以通过乐观锁 悲观锁等方式保证消息的等幂性。 乐观锁与悲观锁 乐观锁是一种教宽松的锁机制,在线程进行数据更新之前对当前的数据版本进行比对,如果版本相同则允许进行操作。 悲观锁是一种较严格的锁机制,即悲观的认 ...
2021-05-27 10:04 0 1083 推荐指数:
面试官心理剖析: 主要是看你对消息队列数据重复消费的问题,是否有了解,是否知道怎么解决?如果这块不知道,那么面试官会觉得如果交给你做功能,可能会出现多次消费的情况。 回答: 为什么会出现重复消费? 分析: 如图,在什么场景会出现消息重复消费?比如说消费端已经消费了 offset ...
一、springboot整合rabbitmq 我们需要新建两个工程,一个作为生产者,另一个作为消费者。在pom.xml中添加amqp依赖: 在application.yml文件 ...
比如你拿个数据要写库,你先根据主键查一下,如果这数据都有了,你就别插入了,update 一下好吧。(高并发会有问题) 比如你是写 Redis,那没问题了,反正每次都是 set,天然幂等性。 比如你不是上面两个场景,那做的稍微复杂一点,你需要让生产者发送每条数据的时候,里面加一个全局唯一的 id ...
一、什么是幂等性 二、消费端的幂等性保障 三、唯一 ID + 指纹码 机制 四、redis的原子性去实现 使用 redis 的原子性去实现主要需要考虑两个点: 第一:我们是否要进行数据落库,如果落库的话,关键解决的问题是数据库和缓存如何做到原子性? 采用延时双 ...
一、MQ消息发送 1、发送端MQ-client(消息生产者:Producer)将消息发送给MQ-server; 2、MQ-server将消息落地; 3、MQ-server回ACK给MQ-client(Producer); 4、MQ-server将消息 ...
前面我们介绍了消息中间件的优势和选型,但是选择消息中间件时还需要考虑几个问题,支持的消息类型、如何保证消息不丢失、 消息幂等性的保证,下面我们逐个介绍: 1 常见消息类型 常见的消息类型包括无序消息、有序消息和延时消息三种。 1.1 无序消息 概念:无序 ...
一、springboot整合rabbitmq 我们需要新建两个工程,一个作为生产者,另一个作为消费者。在pom.xml中添加amqp依赖: 在application.yml文件 ...
什么是幂等? 任意多次执行所产生的影响均与一次执行的影响相同就可以称为幂等 什么是消息幂等? 当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响 为什么我们要保证幂等性,不保证幂等性,会不会有问题? 这个问题其实没法 ...