我对卡夫卡的工作比较陌生,下面是我目前设置的一个例子。
多个主题,每个主题都有一个分区。2消费者群体,每组包含一名消费者。
我所看到的问题是,延迟是巨大的,有时超过8-10小时等待消耗,每天的负载约为1亿至2亿条消息。
为了解决这一问题,我应该考虑采取哪些步骤?这是否像重新分配分区或为两个消费者正在使用的3个主题创建新分区一样简单?-我还研究过用gzip压缩生产者的内容,但在延迟方面没有什么帮助。我看过网络连接,并不觉得这与此有任何关系。如果有人能指出卡夫卡和低延迟文件的方向,那也会很好。
发布于 2022-05-09 14:21:06
通常情况下,流程是通过增加订阅这些主题的分区和消费者组中的分区和消费者数量来并行化您的消费( number,<=,N分区)。并根据集群中代理的数量增加您的主题。
因此,从主题考虑来看:
减去每个主题的分区:
(但要考虑到)每个主题的分区越多,结果是:
然后增加该消费者群体中的消费者数量。
尝试增加每个主题的分区,但它本身不会有帮助!您还需要增加您的消费群体中的消费者数量。这是您的图解上的单一消费者或消费者群体吗?您的消费者组中有多少消费者与他们所关注的主题上的分区进行比较。
从这一点你的信息:
我也看过用gzip压缩生产者的内容,但在延迟方面没有什么帮助。
我知道你的留言可能很大!是这样吗?如果是的话,尽量保持消息小(例如,排除BLOB并保持到它们的外部链接)
不过,问题可能在其他地方,比如糟糕的吐露、消费者提交消息(确认处理)等等。
所以,我强烈建议你阅读用卡夫卡优化定理对卡夫卡性能进行微调的文章

我还建议您在合流网页上学习Apache Kafka课程。
这应该作为注释添加,但我还没有权限这样做。提供的信息是非常有限的不正确的图解,这限制了提供一个充分的帮助答案的能力。如果可能,请更正您的图解,并添加更多关于您的设置的详细信息,如:
卡夫卡的主题分为几个部分。虽然主题是Kafka中的一个逻辑概念,但分区是最小的存储单元,它包含主题所拥有的记录的子集.
然后有一个悬而未决的问题:每个主题中的分区数、每个代理中的主题数量以及集群中的代理数量!
https://stackoverflow.com/questions/72169920
复制相似问题