1 个回答

这个问题其实也主要考虑消息的幂等性问题即可。有以下几种情况:
1、如果当前的数据没有业务上的影响,例如日志的数据,那么我们可以在发送端为每一条数据做一个唯一的全局id,随着消息一起拼凑成一条数据然后发送出去,消费者可以根据布隆过滤器直接过滤掉已经处理过的数据。
2、如果当前的数据和业务有简单关联,例如生产者生产订单,消费者修改订单状态,那么这个订单id本身可以作为一个全局的id进行处理,消费者在处理之前可以先查以下对应订单号是否有处理过,如果处理过,则不需要再处理了。
常见的幂等性的处理总体思路就是上面两个,设计到的工具一般有:
1、如果当前的数据没有业务上的影响,例如日志的数据,那么我们可以在发送端为每一条数据做一个唯一的全局id,随着消息一起拼凑成一条数据然后发送出去,消费者可以根据布隆过滤器直接过滤掉已经处理过的数据。
2、如果当前的数据和业务有简单关联,例如生产者生产订单,消费者修改订单状态,那么这个订单id本身可以作为一个全局的id进行处理,消费者在处理之前可以先查以下对应订单号是否有处理过,如果处理过,则不需要再处理了。
常见的幂等性的处理总体思路就是上面两个,设计到的工具一般有:
1、redis
2、数据库
3、布隆过滤器
等等。
发布于:3年前 (2022-10-18) IP属地:四川省
我来回答
您需要 登录 后回答此问题!