企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
在海量订单生成的业务高峰期,生产端有可能就会重复发送了消息,这时候消费端就要实现幂等性,这就意味着我们的消息永远不会被消费多次,即使我们收到了一样的消息。业界主流的幂等性有下面两种操作。 [TOC] # 1. 唯一ID+指纹码机制 指纹码是我们的一些规则或者时间戳加别的服务给到的唯一信息码,它并不一定是我们系统生成的,基本都是由我们的业务规则拼接而来,但是一定要保证唯一性,然后就利用查询语句进行判断这个 id 是否存在数据库中,优势就是实现简单就一个拼接,然后查询判断是否重复;劣势就是在高并发时,如果是单个数据库就会有写入性能瓶颈。当然也可以采用分库分表提升性能,但也不是我们最推荐的方式。 <br/> # 2. Redis 原子性 利用 redis 执行 setnx 命令,天然具有幂等性,从而实现不重复消费。