使用 Ray 构建流式应用:从 Kafka 集成到扩展与处理
1. 扩展 Kafka 应用实现
在 Kafka 应用中,生产者的消息会被分发到不同的分区,但始终由单个消费者接收和处理。当一切正常运行后,我们可以通过增加 Kafka 消费者的数量来扩展应用(前提是主题有足够的分区)。例如,代码已经支持通过设置 n_consumer = 5
来轻松增加消费者数量。重新运行代码后,会得到类似如下的输出:
Topic test is deleted
Topic test is created
2021-08-23 17:15:12,353 INFO services.py:1264 -- View the Ray dashboard at http://...
(pid=20100) Message delivered to topic test partition 8 offset 0
(pid=20100) Message delivered to topic test partition 2 offset 0
(pid=20103) Consumer 9e2773d4-f006-4d4d-aac3-fe75ed27f44b
(pid=20103) Assignment: [TopicPartition{topic=test,partition=0,offset=-1001,error=...
...
这里,五个 Kafka 消费者各自开始监听 2 个分区(主题使用 10 个分区)。当消息被分发到不同分区时,会由不同的消费者实例进行处理。 </