以下に示すように、私はカフカにワイルドカードのパターンを使用して購読しています。ワイルドカードは動的な顧客IDを表します。kafka-pythonを使用して複数のkafkaワイルドカードパターンのリストを購読するには?
consumer.subscribe(pattern='customer.*.validations')
トピック文字列から顧客IDを引き出すことができるため、これはうまくいきます。しかし今、私は少し異なる目的のために同様の話題を聞く機能を拡張する必要があります。それをcustomer.*.additional-validations
としましょう。多くの機能が共有されているため、コードは同じプロジェクトに存在する必要がありますが、キューのタイプに基づいて別のパスを取る必要があります。
Kafka documentationでは、トピックの配列を購読することができます。しかし、これらはハードコードされた文字列です。柔軟性を可能にするパターンではありません。
>>> # Deserialize msgpack-encoded values
>>> consumer = KafkaConsumer(value_deserializer=msgpack.loads)
>>> consumer.subscribe(['msgpackfoo'])
>>> for msg in consumer:
... assert isinstance(msg.value, dict)
どういうわけか2つの組み合わせを行うことができますか?種類のこの(非稼働)のように:KafkaConsumerコードで
consumer.subscribe(pattern=['customer.*.validations', 'customer.*.additional-validations'])
ありがとうございます!この構文は素晴らしいです。 –