信息传递的重要性
在分布式系统中开发部署用于通讯的应用程序以及相关服务的确是复杂而困难的。但是我们现在有两种基本模式用于解决这个问题,即请求响应模式( request/reply)或者RPC模式,以及事件和数据流,而现有的技术需要提供一种更简单、可伸缩、更安全、具有独立定位和可观察的特性的新模式来适应新的挑战。
现代技术发展对分布式计算系统的要求
现代通讯系统需要支持多种通讯模式、默认情况下稳定运行、支持多种不同质量的服务,并且可以利用完全共享的基础设施来安全的实现多租户。一个成熟的通讯系统应该包括:
- 微服务、边缘平台和设备的默认安全通信
- 运用单一分布式通信技术的安全多租户
- 具有透明的位置寻址和位置发现方式
- 以系统整体健康为重点的恢复能力
- 敏捷开发、CI/CD和大规模操作的易用性
- 具有内置负载平衡和动态自动缩放的高伸缩性和高性能
- 从边缘设备到后端服务的一致标识和安全机制
NATS
NAT是为了满足现在和未来的分布式计算需求而出现的,NATS是一种简便而安全的信息传递方式,可以使开发者和运营商花费更多的时间在开发现代应用和程序上,而不必在分布式通讯系统上浪费功夫。
- 易于开发者和运营商使用
- 高可用
- 随时可用
- 轻量级的
- 有且仅有一次信息传输
- 支持可视化和可扩展的服务和事件/数据流
- 支持三十多种语言的客户端
- 基于云原生技术,是一个由kubernetes和Prometheus集成的CNCF项目
应用实例
NATS可以在任何地方运行,从大型服务器和云实例,到边缘网关或物联网设备。NATS的应用实例包括:
- 云消息传递
- 服务(微服务、服务网格)
- 事件/数据流(可观测性、分析性、ML/AI)
- 服务(微服务、服务网格)
- 指挥与控制
- 物联网与边缘
- 遥测/传感器数据/指挥和控制
- 物联网与边缘
- 增强或替换传统消息传递系统