不使用存储插件进行zenoh 存储扩展开发

以前简单说过zenoh 内部存储插件的处理机制,以下说明下如何直接基于zenoh 语言sdk 进行存储扩展开发

参考图

内部机制说明:对于写入put操作,我们基于ssubscriber 订阅特定的key信息,之后写入到存储中,对于get 请求,我们使用queryable 扩展定义callback 进行get 处理,底层数据我们可以使用key value 存储(redis,mongo,db,rest 接口都是可以的)

  • 参考get 示例代码
import  time
import zenoh
conf = zenoh.Config.from_json5("""
                               {"id":"222223","mode":   "client","connect":{"endpoints":["tcp/127.0.0.1:7447"]}}
                               """)
def callback(qeury:zenoh.Query):    
    print("('{}')".format(qeury.key_expr))
    qeury.reply(key_expr=qeury.key_expr, payload="Hello from Python!",encoding="text/plain")
session =   zenoh.open(conf)
# queryable处理特定key expression 的callback 
session.declare_queryable("demo/**",callback)

while   True:
    time.sleep(1.0)

说明

以上只是一个简单的说明,将存储插件与zenoh router 部署在一起的好处是all-in-one 可靠性好一些,基于独立服务的模式我们灵活性比较好,可以使用各种支持的语言开发

参考资料

https://github.com/eclipse-zenoh/zenoh

posted on   荣锋亮  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-12-31 johnny-five 开发框架
2021-12-31 TriggerMesh 开源强大的事件驱动的集成平台
2020-12-31 k6 负载测试工具
2020-12-31 Production best practices: performance and reliability
2020-12-31 使用throng 运行express 应用
2020-12-31 使用throng 运行express 应用
2020-12-31 使用throng 加速nodejs 应用的并行执行能力

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示