nats消息队列在爱星物联的应用

[复制链接]
查看648 | 回复2 | 2024-8-14 23:49:07 | 显示全部楼层 |阅读模式
本帖最后由 chensg 于 2024-8-14 23:48 编辑

        NATS是一个开源的、高性能的、简洁的、灵活的 适用于现代的可靠灵活的云和分布式系统的中枢系统。NATS服务使用Go语言编写,但客户端可以通过各种主流语言与服务器交互。
        根据NATS官方的说法,NATS可以在任何地方运行,从大型服务器和云实例,通过边缘网关甚至物联网设备。NATS的典型应用场景包括:

  • Cloud Messaging


    • Services (microservices, service mesh)
    • Event/Data Streaming (observability,      analytics, ML/AI)
  • Command and Control


    • IoT and Edge
    • Telemetry / Sensor Data / Command and      Control
  • Augmenting or Replacing Legacy Messaging     Systems


        考虑到NATS用go开发的,很多压测结果反馈运行性能还不错,因此,我们对NATS进行了调研和探索,发现其消息发布订阅机制及存储特性,适合用于云平台内部服务间消息分发。经过综合比较考虑,最终我们选择了NATS作为云平台消息分发组件。
        下面是云平台使用NATS组件的示意图,主要用于设备数据及微服务内部消息分发和订阅处理。
         nats.jpg

        NATS里边有个JetStream存储引擎,支持消息的持久化存储及延迟分发,在后端微服务升级、或高峰期处理不过来时,已发布的消息都会缓存起来,不会丢失,微服务启动或扩容后可继续处理未处理的消息。
        关于JetStream消息消费机制,可以参考官方给到图,云平台基本上时参考了这个例子来使用NATS的,只不过消息主题和内容不同而已。关于消息主题和消息内容结构,请参考爱星物联社区版源代码解读,这里不再详细分解。
         image.png

回复

使用道具 举报

WT_0213 | 2024-8-15 09:23:32 | 显示全部楼层
回复

使用道具 举报

大猫的鱼 | 2024-8-15 13:38:58 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则