# NATS 2.2

NATS 2.2 是自 2.0 版以来最大的功能发布。 2.2 版本以 JetStream 的形式提供了高度可扩展、高性能、安全和易于使用的下一代流媒体，允许通过 websockets 进行远程访问，简化了 NATS 帐户管理，原生 MQTT 支持，并进一步使 NATS 朝着我们的目标迈进为我们生活的超连接世界安全地民主化流和服务。

## 下一代流媒体

JetStream 是 NATS 的下一代流媒体平台，具有高弹性、高可用性和易于使用的特点。我们花了很长时间倾听我们的社区，从我们的经验中学习，着眼于今天的需求，并深入思考明天的需求。我们构建了 JetStream 来满足这些需求。

喷射流：

* 易于部署和管理，内置于 NATS 服务器中
* 简化和加速开发
* 支持通配符主题
* 支持至少一次交付，并且在一个窗口内只支持一次
* 在运行时可水平扩展而不会中断
* 通过流保存数据并通过消费者传递或重放
* 支持多种模式在同一个流上消费数据
* 消费消息时支持推拉模式
* 是帐户感知的 \*允许详细的安全粒度，按流，按消费者，按功能

开始使用 [JetStream](https://github.com/natsclub/nats.docs/blob/main/nats-concepts/jetstream/README.md)。

## 安全性和简化的账户管理

帐户管理变得更加容易。此版本的 NATS 内置了账户管理系统，在不使用内存账户解析器时无需设置账户管理器。通过自动生成默认系统帐户和预加载帐户的能力，只需让部署中的一组服务器成为帐户解析器或帐户解析器缓存，它们将处理通过 NATS nsc 工具提供给 NATS 系统的公共帐户信息。在几分钟内启动并运行企业级帐户管理。

### CIDR 阻止帐户限制

通过为用户指定 CIDR 块限制，可以应用策略将来自客户端的连接限制在特定范围或一组 IP 地址内。将其用作用户凭据之上的另一层安全性，以更好地保护您的分布式系统。确保您的应用程序只能从特定的云、企业、地理位置、虚拟或物理网络中连接。

### 基于时间的帐户限制

在用户范围内，您现在可以在应用程序可以连接的白天[指定特定时间段](https://docs.natsclub.cn/cn/shi-yong-nats/nats-tools/nsc/basics#user-authorization)。例如，允许某些用户或应用程序在指定的工作时间访问系统，或者在一天中最繁忙的部分保护业务操作免受批处理驱动的后台应用程序的影响，这些应用程序在错误的时间运行可能会对系统产生不利影响。

### 默认用户权限

现在您可以在帐户中指定 [默认用户权限](https://docs.natsclub.cn/cn/yun-xing-yi-ge-nats-fu-wu/configuration/securing_nats/authorization#examples)。这显着减少了围绕策略的工作，减少了许可出错的机会，并简化了用户凭据的配置。

## WebSockets

使用 [WebSockets](https://docs.natsclub.cn/cn/yun-xing-yi-ge-nats-fu-wu/configuration/websocket) 将移动和 Web 应用程序连接到任何 NATS 服务器。 NATS WebSocket 支持旨在更轻松地穿越防火墙和负载平衡器，为 NATS 部署提供了更大的灵活性，并使与边缘和端点的通信变得更加容易。目前在 NATS 服务器叶节点、nats.ts、nats.deno 和 nats.js 客户端中支持此功能。

## 原生 MQTT 支持

借助 [自适应边缘架构](https://nats.io/blog/synadia-adaptive-edge/) 以及 NATS 可以轻松地将云部署扩展到边缘，利用物联网的现有投资非常有意义部署。更新设备和大型边缘部署的成本很高。我们的目标是启用超连接世界，因此我们将 [MQTT 3.1.1](https://docs.natsclub.cn/cn/yun-xing-yi-ge-nats-fu-wu/configuration/mqtt) 直接添加到 NATS 服务器中。

将使用 MQTT 3.1.1 的现有 IoT 部署与云原生 NATS 部署无缝集成。添加启用 MQTT 的叶节点，并立即从 NATS 部署向您的 MQTT 应用程序和设备发送和接收消息，无论它是边缘、单云、多云、内部部署还是它们的任何组合。

## 构建更好的系统

我们添加了多种功能，让您能够大规模构建更具弹性、安全性和简单性更好的系统。

2,594 / 5,000 翻译结果

### 消息头

我们添加了选择使用标头的功能，遵循开发人员熟悉的 HTTP 语义。标头自然会应用开销，这就是我们长期以来拒绝添加它们的原因。通过创建对开发人员透明的新内部协议消息，我们保持了我们一直拥有的简单 NATS 消息的极快处理，同时为希望利用它们的人支持标头。向消息添加标头允许您提供特定于应用程序的元数据，例如与压缩或加密相关的信息，而无需触及有效负载。我们还提供了一些用于 JetStream 和其他功能的 NATS 特定标头。

### 带有跛脚鸭通知的无缝维护

当关闭服务器进行维护时，可以向服务器发出信号以进入 [Lame Duck 模式](https://docs.natsclub.cn/cn/yun-xing-yi-ge-nats-fu-wu/nats_admin/lame_duck_mode)，在该模式下它们不接受新连接并在一段时间内驱逐现有连接时间。维护者支持的客户端将通知应用程序服务器已进入此状态并将关闭，从而允许客户端顺利过渡到另一台服务器或集群，并在计划的维护期间更好地保持业务连续性。

### 使用无响应者通知更快地做出反应

为什么在服务不可用时等待超时？当向服务发出请求（请求-回复）并且 NATS 服务器知道没有可用的服务时，服务器将短路请求。 “无响应”协议消息将被发送回请求客户端，该客户端将从阻塞 API 调用中中断。这允许应用程序立即做出反应，从而进一步实现大规模构建高度响应的系统，即使面对应用程序故障和网络分区也是如此。

### 主题映射和流量整形

在加入新服务时降低风险。 NATS 现在完全支持 Canary 部署、A/B 测试和数据流的透明传输。 NATS 服务器允许帐户为客户端入站和服务导入调用形成从一个主题到另一个主题的主题映射，并允许目的地的加权集。将任何百分比 - 1% 到 100% 的流量 - 映射到其他主题，并在运行时通过重新加载服务器配置进行更改。您甚至可以人为地减少一定比例的流量，以在您的系统中引入混沌测试。详情请参阅 NATS 服务器配置中的 [配置主题映射和流量整形](https://docs.natsclub.cn/cn/yun-xing-yi-ge-nats-fu-wu/configuration/configuring_subject_mapping)。

### 账户监控 - 更有意义的指标

NATS 现在允许 [细粒度监控](https://github.com/natsclub/nats.docs/blob/main/running-a-nats-service/nats_admin/monitoring/README.md#account-information) 来识别与特定帐户相关的使用指标。 检查发送或接收的消息和字节以及特定帐户的各种连接统计信息。 帐户可以代表任何东西——一组应用程序、一个团队或组织、一个地理位置，甚至是角色。 如果 NATS 启用您的 SaaS 解决方案，您可以使用 NATS 帐户范围指标来向用户收费。
