怎么保证kafka消息有序?kafka的topic全局是无序的,但是单分区角度是有序的,所以可以将需要确保有序的数据打入到同一个分区可以解决消费顺序问题;过了吗?producer如果出现乱序怎么办?
kafka设置max.in.flight.requests.per.connection=1;用以约束kafka只有等待1个批次的数据都相应成功才能够发送下一个批次;
这样就可以确保有序吗?不够,因为kafka里面确保无错误是以batch为单位的,这意味着如果在一个批次里面如果因为网络抖动发生了丢数据,整个batch还是会重发,于是会出现重复消费问题,所以还要辅助以enable.idempotence=true来进行确保;但是这里配置的幂等只是保证在一次Session,一个partition的幂等
最后,还有记得需要打开retries哦。