我有一个应用程序,用于从 1 个 Kafka 生产者生成的 URL 流中下载特定的 Web 内容。我创建了一个有 5 个分区的主题,并且有 5 个 kafka 消费者。但是,网页下载的超时时间为 60 秒。
当其中一个 url 被下载时,服务器假定消息丢失并将数据重新发送给不同的消费者。
我已经尝试了中提到的所有内容
Kafka consumer configuration / performance issues
和
https://github.com/spring-projects/spring-kafka/issues/202
但我每次都会收到不同的错误。
是否可以将特定消费者与 kafka 中的分区联系起来?
我正在为我的应用程序使用 kafka-python
最佳答案
我错过了 Kafka-python 的文档。我们可以使用 TopicPartition 类为一个特定的消费者分配一个分区。
http://kafka-python.readthedocs.io/en/master/
>>> # manually assign the partition list for the consumer
>>> from kafka import TopicPartition
>>> consumer = KafkaConsumer(bootstrap_servers='localhost:1234')
>>> consumer.assign([TopicPartition('foobar', 2)])
>>> msg = next(consumer)
关于apache-kafka - 如何强制消费者读取kafka中的特定分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45940171/