发帖
2 0 0

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

chensg
金牌会员

31

主题

1

回帖

1070

积分

金牌会员

积分
1070
爱星物联IoT云平台 794 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

──── 0人觉得很赞 ────

使用道具 举报

2024-8-15 09:23:32
2024-8-15 13:38:58
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28256 个
  • 话题数: 40218 篇