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

这篇具有很好参考价值的文章主要介绍了学习笔记:NATS--自适应边缘和分布式系统的连接技术。(更新中)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1. NATS: 自适应边缘和分布式系统 的连接技术
    • nats可以做什么:
    • 为什么需要NATS技术:
    • NATS连接技术的特性:
  • 2. 什么是NATS:面向消息的中间件
    • nats用来做什么:
    • NATS 服务基础设施是什么?
    • NATS 客户端如何连接到 NATS 服务器?
    • NATS是如何设计消息传递的?
    • 该设计的好处
  • 3. 基于主题的消息传递
    • 主题
    • 主题字串的通配符
  • 4. 核心NATS
    • 核心NATS是什么?
    • 1、发布和订阅
      • NATS如何发布和订阅?
      • NATS的消息组成:
    • 分布式系统中的请求-响应模式:
    • 2、请求和响应
      • NATS如何实现请求-响应模式?
      • 无响应者的情况:

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

nats可以做什么:

负责寻址,发现和交换消息,这些消息提供给分布式系统,用来驱动常见的模式:询问和回答(微服务)、创建和处理(增删改)、流处理(消息加工)

为什么需要NATS技术:

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

NATS连接技术的特性:

  1. M:N连接:NATS根据主题而不是主机名和端口来管理寻址和发现。

  2. 在任何地方部署安全混合部署

  3. 可扩展的部署:NATS基础设施和客户端实时沟通所有拓扑变化。即当NATS部署发生变化时,NATS客户端不需要改变

  4. 适应性:nats支持更多组件的利用和更多数据的处理。nats支持M:N的通信模式。nats提供的寻址和发现功能与DNS所绑定。以上特性决定了nats对新系统和新需求的适应性。

2. 什么是NATS:面向消息的中间件

nats用来做什么:

  1. 构建分布式和可拓展的C/S应用;

  2. 一般方式实时存储和分发数据。(兼容各自环境和语言)

NATS 服务基础设施是什么?

NATS 服务由一个或多个 NATS 服务器进程提供,这些进程配置相互互连,提供NATS 服务基础架构。(集群,具有可拓展性)

NATS 客户端如何连接到 NATS 服务器?

  1. URL: 一个 'NATS URL'。这是一个字符串(以 URL 格式),指定可以访问 NATS 服务器的 IP 地址和端口,以及要建立的连接类型(普通 TCP、TLS 或 Websocket)。

  2. 认证(如需登录):认证 前端传来的信息,用于向 NATS 服务器标识自己。 NATS 支持多种身份验证方案(用户名/密码、去中心化 JWT、令牌、TLS 证书和带挑战的 Nkey)。

NATS是如何设计消息传递的?

  1. 发布者:对数据进行编码、框架化为消息,最后发出。

  2. 消息的寻址和标识过程:依赖主题字符串,而非网络位置(域名,IP,Port)。

  3. 订阅者:接收消息,解码并处理消息。

该设计的好处:

  1. 各程序可共享通用的消息处理代码(复用)
  2. 各程序之间隔离了资源和相互依赖关系(解耦)
  3. 可通过增加消息处理方法进行扩展。

3. 基于主题的消息传递

主题:

是形成名称(用于查找对象)的字符串。建议使用ASCII字符。NATS的发布和监听消息严重依赖_Subjects_。

主题层次结构

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

主题字串的通配符:

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

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

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

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

4. 核心NATS

核心NATS是什么?

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

1、发布和订阅

NATS如何发布和订阅?

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

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

NATS的消息组成:

  1. 主题
  2. 以二进制数组形式载荷的内容
  3. 头部header
  4. 可选项:回复地址

消息的默认最大载荷为1M,可自行增加至64M

分布式系统中的请求-响应模式:

即,进程发送请求后,或是以异步方式接收响应,或是超时等待。

此模式需要具备以下特性:位置透明性,可扩展性,可观测性。

2、请求和响应

NATS如何实现请求-响应模式?

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

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

无响应者的情况:

当请求被发送到一个没有订阅者的主题时,如果客户端设置了消息的可选项:no_responder messages ,那么则会立刻收到一个状态码为503,没有body的回复。文章来源地址https://www.toymoban.com/news/detail-844153.html

到了这里,关于学习笔记:NATS--自适应边缘和分布式系统的连接技术。(更新中)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式学习笔记

    Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。 Availability(可用性):用户访问集群中的任意健康节点,必须得到相应,而不是超时或拒绝。 Partition tolerance (分区容忍性):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点

    2024年02月20日
    浏览(33)
  • 什么是分布式系统,如何学习分布式系统

    正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包CAP理论,分布式储存与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,我之前的学习也只算是管中

    2024年02月13日
    浏览(43)
  • 高级分布式系统-第15讲 分布式机器学习--分布式机器学习算法

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 按照通信步调,大致可以分为同步算法和异步算法两大类。 同步算法下,通信过程中有一个显式的全局同步状态,称之为同步屏障。当工作节点运行到 同步屏障 ,就会进入等待状态,直到其工作节点均运行到同步屏障

    2024年01月18日
    浏览(45)
  • 高级分布式系统-第15讲 分布式机器学习--联邦学习

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 两种常见的架构:客户-服务器架构和对等网络架构 联邦学习在传统的分布式机器学习基础上的变化。 传统的分布式机器学习:在数据中心或计算集群中使用并行训练,因为有高速通信连接,所以通信开销相对很小,计

    2024年02月01日
    浏览(47)
  • 大模型学习笔记08——分布式训练

    模型规模的扩大,对硬件(算力、内存)的发展提出要求。然而,因为内存墙的存在,单一设备的算力及容量,受限于物理定律,持续提高芯片的集成越来越困难,难以跟上模型扩大的需求。 为了解决算力增速不足的问题,人们考虑用多节点集群进行分布式训练,以提升算力

    2024年01月23日
    浏览(46)
  • 分布式Erlang/OTP(学习笔记)(一)

    假设你在机器A和机器B上各跑着一个Simple Cache应用的实例。要是在机器A的缓存上插人一个键/值对之后,从机器B上也可以访问,那可就好了。显然,要达到这个目的,机器A必须以某种方式将相关信息告知给机器B。传递该信息的方式有很多,有些方式简单,有些方式复杂。但无

    2024年01月19日
    浏览(60)
  • 分布式文档储存————elasticsearch学习笔记(四)

    之前有提到一个文档至少被储存在一个主分片中,副本分片可以有多个,但是主分片至少有一个。 因此,例如一个集群被设置有3个主分片,为了保证文档被均匀的存储在这些主分片,es会根据routing(可能是文档的id或自己设置),通过一个hash算法将文档分配到一个主分片中

    2023年04月22日
    浏览(43)
  • 机器学习分布式框架ray tune笔记

    Ray Tune作为Ray项目的一部分,它的设计目标是简化和自动化机器学习模型的超参数调优和分布式训练过程。Ray Tune简化了实验过程,使研究人员和数据科学家能够高效地搜索最佳超参数,以优化模型性能。 Ray Tune的主要特点包括: 超参数搜索空间规范 : Ray Tune允许您使用多种方

    2024年02月15日
    浏览(44)
  • 如何系统学习分布式?

    :想要走存储/数据库方向的话,具体路线是啥?重点需要掌握精通哪些知识? 回答 那我简单说一下走存储/数据库这块的学习路线吧。 目前做存储比较热门的是分布式存储方向,有NoSQL的也有关系型数据库的,比如腾讯就有TDSQL,PingCAP 也有TIDB、也有分布式KV存储TIKV。

    2024年02月16日
    浏览(44)
  • 黑马程序员--分布式搜索ElasticSearch学习笔记

    黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列MQ学习笔记 Docker学习笔记 分布式搜索ElasticSearch学习笔记 ElasticSearch的作用 ElasticSearch 是一款非常强大的开源搜素引擎,具备非常强大的功能,可以帮

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包