Публикация в теме с зарегистрированной схемой в Apache Pulsar
Как показано в примере в документации реестра Pulsar Schema
Producer<User> producer = client.newProducer(JSONSchema.of(User.class))
.topic(topic)
.create();
User user = new User(“Tom”, 28);
producer.send(User);
Вы можете зарегистрировать схему как для производителя, так и для потребителя с помощью клиента Java. Также упоминается, что клиенты на других языках не поддерживают реестр схем.
Теперь возможно ли отправить сообщение от производителя API Python по теме Pulsar, которое будет использоваться потребителем с зарегистрированной схемой? например
processor = PulsarClient.builder()
.serviceUrl("pulsar://pulsarhost:6650")
.build()
.newConsumer(JSONSchema.of(User.class))
.topic("sometopic")
.subscriptionName("somesubscription")
.subscribe();
Python: импорт Pulsar
client = pulsar.Client('pulsar://pulsarhost:6650')
producer = client.create_producer('sometopic')
client.close()
1 ответ
Начиная с версии Pulsar 2.4, вы также можете объявлять схему в Python как при публикации, так и при использовании.
Учитывая динамическую природу объекта Python, мы определили Record
класс, который можно использовать для явного объявления формата схемы. Например:
import pulsar
from pulsar.schema import *
class Example(Record):
a = String()
b = Integer()
c = Boolean()
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer(
topic='my-topic',
schema=AvroSchema(Example) )
producer.send(Example(a='Hello', b=1))
Дополнительные примеры в клиентской документации Python: https://pulsar.apache.org/docs/en/client-libraries-python/