gpt4 book ai didi

apache-kafka - Apache Kafka 主题分区

转载 作者:行者123 更新时间:2023-12-04 01:22:31 25 4
gpt4 key购买 nike

我有一个用例,我将读取一组键/值对,其中键只是一个字符串,值是一个 JSON。我必须将这些值以 JSON 的形式公开给 REST 端点,我将使用 kafka 流消费者来执行此操作。

现在我的问题是:

  1. 如何处理 Kafka 分区?我计划为消费者使用 Spark-streaming

  2. 制作人怎么样?我想以恒定的时间间隔从外部服务轮询数据,并将生成的键/值对写入 Kafka 主题。是流媒体制作人吗?

  3. 这是否是使用 Kafka 的有效用例?我的意思是,我可以有另一个消费者组,将传入的键/值对记录到数据库中。这正是吸引我使用 Kafka 的原因,可以让多个消费者组做不同的事情!

我认为对主题进行分区是为了增加并行性,从而增加消费者吞吐量。这个吞吐量与没有分区相比如何?我有一个用例,我必须确保排序,因此我无法对主题进行分区,但同时我希望为我的消费者提供非常高的吞吐量。我该如何去做呢?

有什么建议吗?

最佳答案

只是想分享一些对此的想法

主题是 Kafka 中并行性的主要级别。 具有 N 个分区的主题可以由 N 个线程并行使用。但拥有多个分区主要会造成数据排序问题。例如。如果您有 N 个分区 P,并且将生产者配置为随机发布消息(默认行为),则在时间 T1 生成的消息 M1 可能会发送到分区 P1,消息 M2 @T2 发送到 P2,M3 @T3 发送到 P2,然后 M4 发送到分区 P1。又P1了您可以配置自定义规则以向特定分区生成消息(使用称为Key的东西),但它需要在您端进行处理。

不确定您对制作人的具体含义。一般来说,您可以创建观察者来监听这些事件并在事件到达时调用生产者。您也可以选择批量发送消息。

选择 Kafka 的关键原因之一是与 apachestorm、apachespark 等不同计算引擎的兼容性。但据我的理解,Kafka 的主要目标是高吞吐量,期望数据能够以非常快的速度发布。频繁的持续时间。如果在您的情况下,事件之间的间隔很长,那么在最终确定 Kafka 之前可能值得考虑其他可能性,因为维护空闲集群不是一个好主意。

关于apache-kafka - Apache Kafka 主题分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com