NATS文档
  • 欢迎
  • 发行备注
    • 最新情况
      • NATS 2.2
      • NATS 2.0
  • NATS 概念
    • 概览
      • 比较 NATS
    • 什么是NATS
      • 演练安装
    • 基于主题的消息
    • 核心NATS
      • 发布和订阅
        • 发布/订阅演 练
      • 请求和响应
        • 请求/响应 演练
      • 队列组
        • 队列 演练
    • JetStream
      • 流
      • 消费者
        • 示例
      • JetStream 演练
      • 键值对存储
        • 键值对存储演练
      • 对象存储
        • 对象存储演练
    • 主题映射与分区
    • NATS服务器基础架构
      • NATS部署架构适配
    • 安全
    • 连接性
  • 使用 NATS
    • NATS工具
      • nats
        • nats基准测试
      • nk
      • nsc
        • 基础
        • 流
        • 服务
        • 签名密钥
        • 撤销
        • 管理操作
      • nats-top
        • 教程
    • 用NATS开发
      • 一个NATS应用的解剖
      • 连接
        • 连接到默认服务器
        • 连接到特定服务器
        • 连接到群集
        • 连接名称
        • 用用户名和密码做认证
        • 用令牌做认证
        • 用NKey做认证
        • 用一个可信文件做认证
        • 用TLS加密连接
        • 设置连接超时
        • 乒乓协议
        • 关闭响应消息
        • 杂技功能
        • 自动恢复
          • 禁用自动重连
          • 设置自动重新连接的最大次数
          • 随机
          • 重连尝试之间暂停
          • 关注重连事件
          • 重连尝试期间缓存消息
        • 监视连接
          • 关注连接事件
          • 低速消费者
      • 接收消息
        • 同步订阅
        • 异步订阅
        • 取消订阅
        • N个消息后取消订阅
        • 回复一个消息
        • 通配符订阅
        • 队列订阅
        • 断开连接前清除消息
        • 接收结构化数据
      • 发送消息
        • 包含一个回复主题
        • 请求回复语义
        • 缓存刷入和乒
        • 发送结构化数据
      • JetStream
        • 深入JetStream模型
        • 管理流和消费者
        • 消费者详情
        • 发布到流
        • 使用键值对存储
        • 使用对象存储
      • 教程
        • 用go做个自定义拨号器
  • 运行一个NATS服务
    • 安装、运行和部署NATS服务
      • 安装一个NATS服务
      • 运行和部署一个NATS服务
      • Windows服务
      • 信号
    • 环境约束
    • NATS和Docker
      • 教程
      • Docker Swarm
      • Python 和 NGS 运行在Docker
      • JetStream
    • NATS和Kubernetes
      • 用Helm 部署NATS
      • 创建一个Kubernetes群集
      • NATS群集和认证管理
      • 用cfssl保护NATS群集
      • 用负载均衡来保护外部的NATS访问
      • 在Digital Ocean用Helm创建超级NATS群集
      • 使用Helm从0到K8S再到叶子节点
    • NATS服务的客户端
    • 配置 NATS服务
      • 配置 JetStream
        • 配置管理 Management
          • NATS管理命令行
          • 地形
          • GitHub Actions
          • Kubernetes控制器
      • 群集
        • 群集配置
        • JetStream 群集
          • 管理
      • 网关超级群集
        • 配置
      • 叶子节点
        • 配置
        • JetStream在叶子节点
      • 安全加固NATS
        • 使用 TLS
        • 认证
          • 令牌
          • 用户名/密码
          • TLS认证
            • 群集中的TLS认证
          • NKeys
          • 认证超时
          • 去中心化的 JWT 认证/授权
            • 使用解析器查找帐户
            • 内存解析器教程
            • 混合认证/授权安装
        • 授权
        • 基于账户的多租户
        • OCSP Stapling
      • 日志
      • 使用监控
      • MQTT
        • 配置
      • 配置主题映射
      • 系统事件
        • 系统时间和去中心化的JWT教程
      • WebSocket
        • 配置
    • 管理和监控你的NATS服务基础架构
      • 监控
        • 监控 JetStream
      • 管理 JetStream
        • 账号信息
        • 命名流,消费者和账号
        • 流
        • 消费者
        • 数据复制
        • 灾难回复
        • 加密Rest
      • 管理JWT安全
        • 深入JWT指南
      • 升级一个群集
      • 慢消费者
      • 信号
      • 跛脚鸭模式
  • 参考
    • 常见问题
    • NATS协议
      • 协议演示
      • 客户端协议
        • 开发一个客户端
      • NATS群集协议
      • JetStream API参考
  • 遗产
    • STAN='NATS流'
      • STAN概念
        • 和NATS的关系
        • 客户端连接
        • 频道
          • 消息日志
          • 订阅
            • 通常的
            • 持久化的
            • 队列组
            • 重新投递
        • 存储接口
        • 存储加密
        • 群集
          • Supported Stores
          • Configuration
          • Auto Configuration
          • Containers
        • Fault Tolerance
          • Active Server
          • Standby Servers
          • Shared State
          • Failover
        • Partitioning
        • Monitoring
          • Endpoints
      • Developing With STAN
        • Connecting to NATS Streaming Server
        • Publishing to a Channel
        • Receiving Messages from a Channel
        • Durable Subscriptions
        • Queue Subscriptions
        • Acknowledgements
        • The Streaming Protocol
      • STAN NATS Streaming Server
        • Installing
        • Running
        • Configuring
          • Command Line Arguments
          • Configuration File
          • Store Limits
          • Persistence
            • File Store
            • SQL Store
          • Securing
        • Process Signaling
        • Windows Service
        • Embedding NATS Streaming Server
        • Docker Swarm
        • Kubernetes
          • NATS Streaming with Fault Tolerance.
    • nats账号服务
      • Basics
      • Inspecting JWTs
      • Directory Store
      • Update Notifications
由 GitBook 提供支持
在本页
  • 是什么让NATS连接技术在这些现代系统中独一无二?
  • 可扩展的、面向未来的部署
  • 混合部署
  • 适应性
  • 使用案例
  1. NATS 概念

概览

什么是NATS? NATS是一种连接技术,为现代分布式系统提供动力。连接技术负责寻址、发现和交换消息,这些消息驱动着分布式系统的常见模式;询问和回答问题,又称服务/微服务,以及创建和处理语句,或流处理。

现代分布式系统所面临的挑战 现代分布式系统是由越来越多的超级连接的移动部件和它们产生的额外数据定义的。它们同时采用服务和流来驱动商业价值。它们也被位置独立性和移动性所定义,而不仅仅是我们通常认为是前端技术的东西。今天的系统和后端流程、微服务和流处理也被要求不受地点限制,具有移动性,同时又是安全的。

这些现代系统对那些一直用于连接移动前端和相当静态的后端的技术提出了挑战。这些现有的技术通常通过主机名(DNS)或IP和端口来管理寻址和发现,利用1:1的通信模式,并有多种不同的安全模式进行认证和授权。虽然不完美,但现有的技术在许多情况下已经足够好了,但时代正在迅速变化。随着微服务、功能函数和流处理被要求转移到边缘,这些技术和它们的假设都受到了挑战。

是什么让NATS连接技术在这些现代系统中独一无二?

轻松的M:N连接: NATS根据主题而不是主机名和端口来管理寻址和发现。默认为M:N通信,这是1:1的超集,意味着它可以做1:1,但也可以做更多。如果你有一个在开发中成功的1:1系统,请问在生产中需要多少其他移动部件来围绕1:1的假设来工作?诸如负载平衡器、日志系统和网络安全模型,以及代理和边车。如果你的生产系统需要所有这些东西,只是为了绕过正在使用的连接技术(如HTTP或gRPC)是1:1的事实,那么是时候看看NATS.io了。

在任何地方部署: NATS几乎可以在任何地方部署;在裸机上、在虚拟机中、作为容器、在K8S内、在设备上,或者你选择的任何环境。NATS在部署框架内或不在部署框架内都可以运行良好。

**安全:**同样,NATS默认是安全的,对网络周边的安全模型没有要求。当你开始考虑调动你的后端微服务和流处理器时,很多时候最大的障碍是安全。

可扩展的、面向未来的部署

NATS基础设施和客户端实时沟通所有拓扑变化。这意味着,当NATS部署发生变化时,NATS客户端不需要改变。要改变客户端的部署,就像每次你的手机供应商增加或改变一个手机塔时,都要重新启动你的手机。这听起来当然很荒谬,但想想今天有多少系统的前端与后端紧密相连,任何变化都需要一个完整的前端重启或至少重新配置。当后端服务器被添加、删除和改变时,NATS客户和应用程序不需要这样的改变。甚至DNS也只用于引导第一次接触,之后,NATS透明地处理终端位置。

混合部署

利用NATS的另一个优势是,它允许混合SaaS/Utility计算与单独拥有和运营。这意味着你可以有一个共享的NATS服务,其核心微服务、流和流处理可以由需要运行自己的NATS基础设施的团体或个人来扩展。你不会被迫选择鱼或者熊掌。

适应性

今天的系统会因为新的需求而显得不足。随着现代系统的不断发展,利用更多的组件和处理更多的数据,支持超越1:1的通信模式,与DNS绑定的寻址和发现是至关重要的。像NATS这样的基础技术将带来最大的投资回报。在现代系统统一云、边缘、物联网和其他方面时,现有的技术将无法良好运作。NATS可以。

使用案例

NATS可以在任何地方运行,从大型服务器和云实例,到边缘网关甚至是物联网设备。NATS的用例包括:

  • 云信息传递

    • 服务(微服务,服务网)。

    • Event/Data Streaming (可观察性、分析、ML/AI/)。

  • 指挥和控制

    • 物联网和边缘

    • 遥测/传感器数据/指挥和控制

  • 增强或取代传统的信息传递系统

上一页NATS 2.0下一页比较 NATS

最后更新于2年前