Kar*_*son 2 python-pulsar apache-pulsar
如Pulsar Schema 注册表文档中的示例所示
\n\nProducer<User> producer = client.newProducer(JSONSchema.of(User.class))\n .topic(topic)\n .create();\nUser user = new User(\xe2\x80\x9cTom\xe2\x80\x9d, 28);\nproducer.send(User);\nRun Code Online (Sandbox Code Playgroud)\n\n您可以使用 Java 客户端注册生产者和消费者的架构。还提到其他语言的客户端不支持模式注册。
\n\n现在是否可以从 Python API 生产者发送关于 Pulsar 主题的消息,该消息将由具有注册模式的消费者使用?例如
\n\nprocessor = PulsarClient.builder()\n .serviceUrl("pulsar://pulsarhost:6650")\n .build()\n .newConsumer(JSONSchema.of(User.class))\n .topic("sometopic")\n .subscriptionName("somesubscription")\n .subscribe();\nRun Code Online (Sandbox Code Playgroud)\n\nPython:\n 导入脉冲星
\n\nclient = pulsar.Client(\'pulsar://pulsarhost:6650\')\n\nproducer = client.create_producer(\'sometopic\')\nclient.close()\nRun Code Online (Sandbox Code Playgroud)\n
从 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))
Run Code Online (Sandbox Code Playgroud)
有关 Python 客户端文档的更多示例:https://pulsar.apache.org/docs/en/client-libraries-python/#declaring-and-validating-schema
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |