9 个不稳定版本
0.1.4+solana.1.11.3 | 2022年7月23日 |
---|---|
0.1.3+solana.1.10.11 | 2022年7月23日 |
0.1.3+solana.1.10.2 | 2022年3月15日 |
0.1.2 | 2022年2月28日 |
#15 in #ms
每月 182 次下载
37KB
718 代码行
Solana AccountsDB 插件用于 Kafka
用于与 Solana 的 插件框架 一起使用的 Kafka 发布者。
安装
二进制版本
在以下位置查找二进制版本:https://github.com/Blockdaemon/solana-accountsdb-plugin-kafka/releases
从源代码构建
cargo build --release
- Linux:
./target/release/libsolana_accountsdb_plugin_kafka.so
- macOS:
./target/release/libsolana_accountsdb_plugin_kafka.dylib
重要: Solana 的插件接口要求 Solana 验证器和此插件的构建环境必须 相同。
这包括 Solana 版本和 Rust 编译器版本。加载针对错误版本的插件会导致内存损坏和崩溃。
配置
配置通过插件的 JSON 配置文件指定。
示例配置
{
"libpath": "/solana/target/release/libsolana_accountsdb_plugin_kafka.so",
"kafka": {
"bootstrap.servers": "localhost:9092",
"request.required.acks": "1",
"message.timeout.ms": "30000",
"compression.type": "lz4",
"partitioner": "murmur2_random"
},
"shutdown_timeout_ms": 30000,
"update_account_topic": "solana.testnet.account_updates",
"slot_status_topic": "solana.testnet.slot_status",
"publish_all_accounts": false,
"program_ignores": [
"Sysvar1111111111111111111111111111111111111",
"Vote111111111111111111111111111111111111111"
]
}
参考
libpath
:Kafka 插件的路径kafka
:librdkafka
配置选项。此插件覆盖了示例配置中看到的默认值。shutdown_timeout_ms
:插件在退出请求时给定的将所有消息刷新到 Kafka 的时间。update_account_topic
:账户更新主题名称。省略以禁用。slot_status_topic
:槽状态更新主题名称。省略以禁用。publish_all_accounts
:启动时发布所有账户。省略以禁用。program_ignores
:要忽略其拥有的账户更新的 Solana 程序 ID。
缓冲
Kafka生产者严格采用非阻塞模式,以便Solana验证器同步时几乎不会产生延迟。这意味着来自Solana验证器的传入事件将被缓冲并异步发布。
当发布缓冲区耗尽时,任何额外的事件将被丢弃。这可能会发生在Kafka代理速度过慢或与Kafka的连接失败时。因此,选择足够大的缓冲区至关重要。
可以使用librdkafka
配置选项来控制缓冲区大小,包括
queue.buffering.max.messages
:生产者队列允许的最大消息数量。queue.buffering.max.kbytes
:生产者队列允许的最大总消息大小总和。
依赖项
~53–73MB
~1.5M SLoC