- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Pulsar 的新手,我只是在探索新项目的功能。我正在尝试一个非常基本的示例来基于模式从生产者发送数据。为了提供一些背景知识,我的想法是将数据从 apache-pulsar 发送到 Clickhouse 数据库。我已经完成了接收器连接器的设置,并使用下面的命令对其进行了验证
bin/pulsar-admin sinks status --tenant public --namespace default --name jdbc-clickhouse-sink
bin/pulsar-admin sinks list --tenant public --namespace default输出:[“jdbc-clickhouse-sink”]
所以我在 Clickhouse DB 中创建了一个表。我希望将数据发送到应保存在数据库中的主题。这样做时,我想保持模式一致,因此我想设置一个模式。下面的示例代码
import pulsar
from pulsar.schema import *
class Example(Record):
a = Integer()
b = Integer()
c = Integer()
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer(
topic='my-topic',
schema=AvroSchema(Example) )
producer.send(Example( a=444 , b=62, c=999 ))
当我运行上面的代码时,出现以下错误
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-114-3b0aa7d0415f> in <module>
9
10 client = pulsar.Client('pulsar://localhost:6650' class="ansi-blue-fg">)
---> 11 producer = client.create_producer(
12 topic='my-topic',
13 schema=AvroSchema(Example) )
~/opt/anaconda3/lib/python3.8/site-packages/pulsar/__init__.py in
create_producer(self, topic, producer_name, schema, initial_sequence_id,
send_timeout_millis, compression_type, max_pending_messages,
max_pending_messages_across_partitions, block_if_queue_full, batching_enabled,
batching_max_messages, batching_max_allowed_size_in_bytes,
batching_max_publish_delay_ms, message_routing_mode, properties, batching_type)
560
561 p = Producer()
--> 562 p._producer = self._client.create_producer(topic, conf)
563 p._schema = schema
564 return p
Exception: Pulsar error: IncompatibleSchema
有人可以帮助我在这里缺少什么吗
最佳答案
确保你已经安装了带有 avro 的 Pulsar Python 客户端
pip3 安装 fastavropip3 安装 pytzpip3 安装 pulsar-client[avro]
在这里查看我的 python 示例和模式 https://github.com/tspannhw/FLiP-Pi-Weather/blob/main/weather.py
看看我的例子 https://github.com/tspannhw/FLiP-Stream2Clickhouse
检查你的架构bin/pulsar-admin 模式获得持久性://public/default/my-topic
Python 文档 https://pulsar.apache.org/api/python/ https://pulsar.apache.org/api/python/schema/schema.m.html#pulsar.schema.schema.AvroSchema
Pulsar 每个客户端可用的功能 https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit
您可能需要从实际的 Avro Schema 文件生成类,这通常是在 Java 中完成的。
看这个例子:
https://github.com/ta1meng/pulsar-python-avro-schema-examples
如果不需要 Avro,JsonSchema 不需要这个额外的步骤
关于python - 异常 : Pulsar error: IncompatibleSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71085489/
如何使用 Pulsar 管理 API(或)获取 Pulsar 中特定消息的到期日期?有什么方法可以查明特定消息是否已过期? 最佳答案 https://pulsar.apache.org/docs/en
简介 我们正在开发一个系统来支持多个实时消息(聊天)和更新(事件通知)。 也就是说,用户 A 可以通过 Web Socket 接收消息: 接收新的聊天消息 接收某些事件的更新,例如,如果有人喜欢他们的
Pulsar 允许多个生产者订阅同一个主题,前提是他们的生产者名称不同。有没有办法检查是否已经存在具有相同名称(和相同主题)的生产者? 最佳答案 您可以使用 stats来自 pulsar-admin
在 Apache Pulsar 主题文档中,它说我们可以将主题时间保留策略设置为 -1 以实现基于无限时间的保留,无限保留的缺点是什么,我们可以使用 pulsar 作为消息存储,其中数据永远存在于主题
使用 pulsar 为每个散列动态创建一个主题(或分区),并在不再使用时删除主题(或分区),这是可能的和好的场景吗? 这个想法是能够以有序的方式读取具有相同散列的数据,而无需在具有相同散列的两条消息之
我认为一个简单的例子可以更好地描述我的问题。 例如,假设有一个名为“A”的主题,我已经生成了 100 条消息 (message1...message100)。我已经使用独占类型的订阅“A_1”使用并确
问题 一个月前我向 pulsar 添加了 2 个 bookie,但我意识到这是浪费资源。我怎样才能将博彩公司从 7 个减少到 3 个。 我的努力 通过 bookkeeper 的文档,我发现当 book
如 Pulsar Schema Registry Docs 中的示例所示 Producer producer = client.newProducer(JSONSchema.of(User.class
问题 一个月前我向 pulsar 添加了 2 个 bookie,但我意识到这是浪费资源。我怎样才能将博彩公司从 7 个减少到 3 个。 我的努力 通过 bookkeeper 的文档,我发现当 book
如 Pulsar Schema Registry Docs 中的示例所示 Producer producer = client.newProducer(JSONSchema.of(User.class
我正在尝试找出从 Pulsar 主题中删除所有消息(逻辑上或物理上)的最佳方法,以便订阅不再使用它们? 我知道我们可以简单地执行 $ pulsar-admin persistent delete pe
我用 Spring boot 编写了一个简单的 Apache Pulsar 客户端——一个初始化为 bean 的 pulsar-producer,它将在 rest controller 中用于将传入的
我们一直在尝试在我们的 2.8.1 Apache Pulsar 集群上添加 JWT 身份验证,它似乎工作正常,但权限除外。所以基本上,我们现在的状态是: 没有 token ,客户端会收到 401 使用
我对 java 消息监听器 和 apache pulsar 还很陌生。假设我已经维护了一个这样的监听器, private MessageListener generateListener() {
我发现即使我的 Pulsar 客户端已启动并正在运行,非持久性消息有时也会丢失。那些非持久化的消息在吞吐量很高(很短的时间内超过1000条消息。我个人认为这并不高)时丢失。如果我增加参数 receiv
跨地域复制是 Apache Pulsar 企业级特性的重要组成部分,它保证了系统的高可用,在操作和管理上也非常便捷,今天用 5 张图来带大家学习这个功能。 1.多机房部署 Pulsar 多机
我根本无法安装文档中提到的 pulsar-client: pip3 install pulsar-client Collecting pulsar-client ERROR: Could not fi
Apache Pulsar 支持的最大消息大小是多少? 我尝试阅读文档。但我找不到任何相关信息。 最佳答案 默认的最大消息大小为 5242880 字节 (5 MiB),但可以调整。有关详细信息,请参阅
尝试在我的kubernetes集群中部署Pod和一些Pod给了我一些存储问题的错误。屏幕截图如下: 我确定问题出在我的一个工作节点上。我认为 pulsar 不是问题。我还将在这里共享YAML文件,
我想将 pulsar 与 apache airflow 一起运行。问题是两者都在端口号 8080 上运行。我不想更改 Airflow 的配置,但为了让 pulsar 运行,我必须为其分配另一个端口。我
我是一名优秀的程序员,十分优秀!