Kafka kakfa订购问题示例和需求输入

eqqqjvef  于 2023-03-01  发布在  Apache
关注(0)|答案(1)|浏览(125)

我有问题,为生产的消息在Kafka生产者主题的顺序。我确保我的数据都去适当的分区的基础上的关键。
产品1在分区1中并且密钥为"A"产品2在分区2中并且密钥为"B"。
产品组1由产品1和产品2以及此"C"的密钥组成,并放置在分区3中。
当消费者尝试使用数据时,产品组1在产品1和产品2之前被使用,因为产品组是不同的分区。
我试着尽可能多地研究和不容易的方法来处理订购问题。有人遇到过这个产品吗?
我试图使用产品组ID作为产品1和产品2的分区密钥。但是产品1和产品2没有关于产品组的信息。
这将是伟大的,如果有任何解决方案可用于解决生产者方面。如果没有什么是所有的选项可用于消费者方面处理它?简单的方法来做。我做了堆栈溢出研究了,也找不到任何更好的解决方案。
Kafka排序发生在分区级别,而不是跨分区。我们不想去与单一分区的方法。
任何帮助都将不胜感激。
1.我确实尝试了基于密钥的解决方案,其中所有数据都驻留在一个分区中,但没有工作。
1.有没有其他办法可以用来对付kakfa国营商店?想不出来。
1.每个使用者都可以读写消息,然后自己排序数据,就像过渡一样,这太麻烦了。
1.在我们处理产品组之前,有没有什么方法可以使用ksql来提取产品和负载的数据?

ozxc1zmp

ozxc1zmp1#

Kafka主题划分主要是为了并行化和提高用户端的吞吐量。
Kafka并不保证跨多分区主题的排序,它只能保证分区内的排序,并且它完全在生产者的控制下处理键/自定义分区,消费者必须完全意识到这一点,以避免您的问题。
在您的例子中,如果您需要按照[prodcut-1,product-2,product-gp-1]推送的顺序处理产品,那么直接和干净的方法是将它们推送到完全相同的分区,除此之外,您将创建另一个要解决的问题,即在多线程处理中重新排序数据(注意在XY-Problem dillema下)
关于kafka topic partitions的一本好书
kafka arch official文档也会有所帮助

相关问题