学习条记:NATS--自适应边沿和分布式系统的连接技术。(更新中) ...

莱莱  金牌会员 | 2024-5-15 18:16:52 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 890|帖子 890|积分 2670

目录

1. NATS: 自适应边沿和分布式系统 的连接技术

nats可以做什么:

负责寻址,发现和互换消息,这些消息提供给分布式系统,用来驱动常见的模式:扣问和答复(微服务)、创建和处理(增删改)、流处理(消息加工)
为什么需要NATS技术:

随着微服务、功能函数和流处理被要求转移到边沿,现有(用于连接移动前端和静态后端的1:1通讯模式,如HTTPorGRPC)技术受到了挑衅。
NATS连接技术的特性:


  • M:N连接:NATS根据主题而不是主机名和端口来管理寻址和发现。
  • 在任何地方部署安全混淆部署
  • 可扩展的部署:NATS底子设施和客户端实时沟通所有拓扑变化。即当NATS部署发生变化时,NATS客户端不需要改变
  • 适应性:nats支持更多组件的使用和更多数据的处理。nats支持M:N的通讯模式。nats提供的寻址和发现功能与DNS所绑定。以上特性决定了nats对新系统和新需求的适应性。
2. 什么是NATS:面向消息的中心件

nats用来做什么:


  • 构建分布式和可拓展的C/S应用;
  • 一般方式实时存储和分发数据。(兼容各自环境和语言)
NATS 服务底子设施是什么?

NATS 服务由一个或多个 NATS 服务器进程提供,这些进程配置相互互连,提供NATS 服务底子架构。(集群,具有可拓展性)
NATS 客户端怎样连接到 NATS 服务器?


  • URL: 一个 'NATS URL'。这是一个字符串(以 URL 格式),指定可以访问 NATS 服务器的 IP 地点和端口,以及要建立的连接类型(普通 TCP、TLS 或 Websocket)。
  • 认证(如需登录):认证 前端传来的信息,用于向 NATS 服务器标识本身。 NATS 支持多种身份验证方案(用户名/暗码、去中心化 JWT、令牌、TLS 证书和带挑衅的 Nkey)。
NATS是怎样设计消息传递的?


  • 发布者:对数据进行编码、框架化为消息,末了发出。
  • 消息的寻址和标识过程:依赖主题字符串,而非网络位置(域名,IP,Port)。
  • 订阅者:接收消息,解码并处理消息。
该设计的好处


  • 各步伐可共享通用的消息处理代码(复用)
  • 各步伐之间隔离了资源和相互依赖关系(解耦)
  • 可通过增加消息处理方法进行扩展。
3. 基于主题的消息传递

主题

是形成名称(用于查找对象)的字符串。发起使用ASCII字符。NATS的发布和监听消息严重依赖_Subjects_。
主题层次结构

主题字串的通配符


  • 匹配单个标志:第一个通配符是 *,它将匹配单个标志。(可在同一主题重复出现)


  • 匹配多个标志:第二个通配符是>,它将匹配一个或多个标志,并且只能出现在主题的末尾。(分接头:为 > 创建一个订阅者,可监控NATS集群上的所有消息)

4. 核心NATS

核心NATS是什么?

核心NATS是NATS服务底子设施提供的基本功能和服务质量(QoS)集。其功能是发布/订阅,具有基于主题的寻址和队列,以及“最多一次”服务质量。(不包括nats-server启用JetStream后提供的功能和服务)
1、发布和订阅

NATS怎样发布和订阅?

NATS实现了1:N通讯的消息分发模型。在此模型中,订阅者从特定主题中持续监听消息,而发布者随时向特定主题发送消息。订阅者可以通过主题字勾通配符 注册一系列的主题(即监听多个群聊)。此1:N的通讯模式可被称为分发

NATS的消息构成:


  • 主题
  • 以二进制数组形式载荷的内容
  • 头部header
  • 可选项:回复地点
消息的默认最大载荷为1M,可自行增加至64M
分布式系统中的请求-响应模式:

即,进程发送请求后,或是以异步方式接收响应,或是超时等候。
此模式需要具备以下特性:位置透明性,可扩展性,可观测性。
2、请求和响应

NATS怎样实现请求-响应模式?


  • 使用NATS内核的通讯机制:发布-订阅。订阅者随时用本身的收件箱 将请求发送到特定主题中。持续监听特定主题的发布者用发来的收件箱将响应回复给订阅者。
  • 多个NATS响应者会自动地形成动态队列组。因此,手动去添加或移除订阅者,影响不了响应者队列对消息的发送行为。
  • NATS步伐在连接断开前会排空缓冲,以减小进程规模。
  • 基于发布-订阅机制,NATS步伐可以检察请求和响应,以测量耽误、监视异常、直接可扩展性等。
  • NATS答应多个响应者,其中第一个送达的响应被使用,额外的响应被丢弃。这可以减少响应的耽误和抖动

无响应者的情况:

当请求被发送到一个没有订阅者的主题时,如果客户端设置了消息的可选项:no_responder messages ,那么则会立刻收到一个状态码为503,没有body的回复。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表