page contents

如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

轩辕小不懂 发布于 2021-10-13 14:43
阅读 515
收藏 0
分类:资源下载
2136
Nen
Nen
- 程序员

要保证消息不被重复消费,其实就是要保证消息消费时的幂等性。幂等性:无论你重复请求多少次,得到的结果都是一样的。例如:一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性。、

那么如何保证幂等性呢?

1、写数据时,先根据主键查一下这条数据是否存在,如果已经存在则 update;

2、 数据库的唯一键约束也可以保证不会重复插入多条,因为重复插入多条只会报错,不会导致数据库中出现脏数据;

3、 如果是写 redis,就没有问题,因为 set 操作是天然幂等性的。


请先 登录 后评论