大家好,问题是这样的,我现在是生产者,发送kafka数据的时,有两条json要发送,举例 一个是A,一个是B,但要求必须B先到消费者里,随后A在到才能进行二者关联,最后的问题就是想知道一个 kafkaproducer如何控制先发那个后发那个!或者准确的说如果知道B到了以后在发A
发送成功之后不是有回调函数吗?就是onSuccess(),在这个方法里面再发送A不就行了吗
nothing
可以参考一下https://www.cnblogs.com/fatFatCat/p/14144140.html
单topic单分区,可以严格保证和binlog一样的顺序性,缺点就是性能比较慢,单分区的性能写入大概在2~3k的TPS
多topic单分区,可以保证表级别的顺序性,一张表或者一个库的所有数据都写入到一个topic的单分区中,可以保证有序性,针对热点表也存在写入分区的性能问题
单topic、多topic的多分区,如果用户选择的是指定table的方式,那和第二部分一样,保障的是表级别的顺序性(存在热点表写入分区的性能问题),如果用户选择的是指定pk hash的方式,那只能保障的是一个pk的多次binlog顺序性 ** pk hash的方式需要业务权衡,这里性能会最好,但如果业务上有pk变更或者对多pk数据有顺序性依赖,就会产生业务处理错乱的情况. 如果有pk变更,pk变更前和变更后的值会落在不同的分区里,业务消费就会有先后顺序的问题,需要注意