开源消息系统NATS发布了 2.0 版本,新版本带来了先进的安全管理、全球灾难恢复功能和大规模性能改进。NATS 是云原生计算基金会(CNCF)的一个孵化器项目,为云原生系统、物联网消息传递和微服务提供消息服务。主导 NATS 开发的 Synadia 公司表示,新版本的目标是“为现代分布式系统量身定制通信系统”。
NATS 是一组可用于在分布式系统中管理系统间通信的产品,由 Synadia 维护。Synadia 基于 NATS 提供了一个通信系统。NATS 的消息传递使用了发布者和订阅者模型,客户端通过 URL 连接到系统,并向主题订阅或发布消息。NATS 是一种即发即弃的消息传递系统,可以保证最多一次传递。如果不存在订阅者,则消息直接被丢失。NATS流提供了可配置的消息持久性,并且可以通过消息确认保证至少一次消息传递。
NATS 的订阅和发布模型
NATS 2.0 是自发布原始代码库以来最大的一个特性版本,目标是解决大规模分布式消息传递所面临的各种挑战。NATS 团队表示,最新版本的目标是降低总体维护成本,改进隔离以便降低运维成本,提供简单的灾难恢复功能,以及安全管理的去中心化。NATS 2.0 的主要新特性包括帐户、全局部署和去中心化的安全性。
帐户功能带来了安全、隔离的通信上下文。客户端在连接到系统时可以指定一个帐户或默认使用全局帐户。数据可以在帐户之间共享,但因为是基于用户定义的访问限制,所以帐户只会访问它们需要的主题和数据。帐户通过服务或流共享数据。服务就像端点一样,可以支持对帐户的访问。服务可以被导出,这样其他帐户就可以导入被导出的服务。导入服务后,就可以将请求发送到导入帐户。
NATS 全局部署支持具有超集群概念的全局拓扑,超集群功能与跨区域 NATS 集群类似。在路由客户端时,首选本地客户端,然后使用往返延迟时间(RTT)来查找超级集群中延迟最低的 NATS 集群。在服务中断的情况下,流量会在区域集群之间自动路由,从而实现无需额外配置的灾难恢复。星型拓扑也可以用叶子节点实现,叶子节点透明、安全地在特定的本地数据和全局 NATS 部署之间建立桥接,并可用于边缘计算或物联网应用程序。
NATS 2.0 的安全性是通过Operator、Account和User来管理的。Operator 用于在系统中定义根信任,Account 用于限制和暴露服务和流。User 则有访问帐户的特定凭据和权限。
NATS 使用 Go 开发,并为 C 语言、Java、Elixir、Node.js 和 Ruby 等多种语言提供了客户端。类似的产品包括 RabbitMQ、Kafka 和 ActiveMQ。有关安装和运行 NATS 的更多信息可以在NATS文档中找到。
原文链接:
Open Source Messaging Software NATS Releases 2.0
评论