使用 azure-event-hubs-python 从多个分区获取事件?
Get events from multiple partitions using azure-event-hubs-python?
我正在按照此处给出的说明进行操作 https://github.com/Azure/azure-event-hubs-python/tree/master。
但是我不确定如何使用多个分区。
我试过这样做
for partition in range(0, 4):
EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run()
但它只为分区 0 创建接收器并只听它。有什么简单的方法可以创建多个接收器来监听不同分区上的事件。
我也试过使用
for partition in range(0, 4):
EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run_daemon()
创建了多个receiver,但我并没有真正拿到数据
运行 方法正在阻塞。事件被传送到 MyReceiver 的回调。要订阅多个分区,请尝试以下操作,
EventHubClient(ADDRESS).subscribe(MyReceiver("0"), CONSUMER_GROUP, "0", OFFSET)
.subscribe(MyReceiver("1"), CONSUMER_GROUP, "1", OFFSET)
.subscribe(MyReceiver("2"), CONSUMER_GROUP, "2", OFFSET)
.subscribe(MyReceiver("3"), CONSUMER_GROUP, "3", OFFSET)
.run()
方法 run_daemon 运行 将客户端置于专用线程上,以便应用程序可以调用 Receiver.receive 方法在需要时获取消息。您可以通过相同的方式订阅多个分区。
我正在按照此处给出的说明进行操作 https://github.com/Azure/azure-event-hubs-python/tree/master。
但是我不确定如何使用多个分区。
我试过这样做
for partition in range(0, 4):
EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run()
但它只为分区 0 创建接收器并只听它。有什么简单的方法可以创建多个接收器来监听不同分区上的事件。
我也试过使用
for partition in range(0, 4):
EventHubClient(ADDRESS).subscribe(MyReceiver(str(partition)), CONSUMER_GROUP, str(partition), OFFSET).run_daemon()
创建了多个receiver,但我并没有真正拿到数据
运行 方法正在阻塞。事件被传送到 MyReceiver 的回调。要订阅多个分区,请尝试以下操作,
EventHubClient(ADDRESS).subscribe(MyReceiver("0"), CONSUMER_GROUP, "0", OFFSET)
.subscribe(MyReceiver("1"), CONSUMER_GROUP, "1", OFFSET)
.subscribe(MyReceiver("2"), CONSUMER_GROUP, "2", OFFSET)
.subscribe(MyReceiver("3"), CONSUMER_GROUP, "3", OFFSET)
.run()
方法 run_daemon 运行 将客户端置于专用线程上,以便应用程序可以调用 Receiver.receive 方法在需要时获取消息。您可以通过相同的方式订阅多个分区。