gpt4 book ai didi

python - 使用 pykafka 在主题的特定分区上发布

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:51 25 4
gpt4 key购买 nike

pykafka 中如何在主题的特定分区上发布消息。在下面的一段代码中,测试主题有四个分区,我打算在其中一个分区中写入每条消息,但显然它不能那样工作。

from pykafka import KafkaClient

import logging
logging.basicConfig()

client = KafkaClient(hosts='localhost:9092')
print client.topics
topic = client.topics['test']
with topic.get_producer() as producer:
for i in range(4):
producer.produce('another test message ' + str(i ** 2), partition_key='{}'.format(0))

最佳答案

key 决定了一条消息将在“哪个分区”中结束。
如果您不提供 key ,那么 Kafka 将以循环方式放置消息,其中每个分区获得大致相同数量的消息。

如果您提供 key ,则 Kafka 会计算哈希并将消息放入生成的分区中。您无法完全控制将使用哪个特定分区,只是相同的 key 将始终位于同一分区中。
向消息添加 key 通常用于保证某些消息子集的排序。例如。假设您有 usertransaction 实体,并且您希望按顺序处理属于同一用户的所有交易。您可以通过使用 userId 作为消息键来实现。

分区之间没有协调(太慢),因此在使用多个分区时没有总排序。只有当您将消息全部放在同一分区中时,您才能保证消息将按照它们生成的相同顺序使用。

也许我应该先问你的用例,然后再写这些:)

关于python - 使用 pykafka 在主题的特定分区上发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480682/

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