Xds (eXtensible Discovery Service)理解

news2024/11/16 9:31:18

Xds (eXtensible Discovery Service)理解

概念介绍

XDS:全称是 eXtensible Discovery Service,中文译为”可扩展的服务发现“。是一个扩展性的协议,可以用于配置和控制 Envoy 代理的各个方面,包括路由规则、负载均衡、健康检查等。XDS 协议的设计目标是支持大规模、动态和高可用的微服务架构。

组成

  1. RDS(Route Discovery Service):RDS 是 XDS 协议的一个组成部分,用于动态发现和配置 Envoy 代理的路由规则。RDS 定义了用于路由配置的接口和协议。
  2. LDS(Listener Discovery Service):LDS 是 XDS 协议的另一个组成部分,用于动态发现和配置 Envoy 代理的监听器。LDS 定义了用于监听器配置的接口和协议。
  3. CDS(Cluster Discovery Service):CDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理的集群信息。CDS 定义了用于集群配置的接口和协议。
  4. EDS(Endpoint Discovery Service):EDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理的终端节点(即后端服务)信息。EDS 定义了用于终端节点配置的接口和协议。
  5. SDS(Secret Discovery Service):SDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理所需的安全凭证(如证书、密钥等)。SDS 定义了用于安全凭证配置的接口和协议。

工作原理

XDS 的工作原理是 Envoy 代理与服务发现平台之间通过 XDS 协议进行通信,代理向平台注册自身并拉取配置信息,然后根据配置更新自身的状态和行为

Xds 在 Envoy 中的作用

Envoy 介绍

这里简单介绍一下 envoy :是一个高性能、可扩展的开源代理和通信中间件,由 Lyft 公司开发并贡献给 CNCF(Cloud Native Computing Foundation)。它被设计用于支持现代的云原生应用架构,并提供可靠的服务发现、负载均衡、流量管理和安全性等功能。(来自 gpt)

envoy 同 nginx 类似。

Envoy 和 Xds

上文中已经说明了 xds 协议的作用,就是通过 xds 来动态的更新 envoy 中的配置信息,更新 envoy 的行为和状态。对比 nginx 只能通过 reload 来重启 nginx 服务来刷新配置优秀的多。(nginx 也乐意通过 lua 插件来热重载)

Xds 在 Istio 中的作用

Istio 介绍

Istio 是一个开源的、可扩展的服务网格平台,用于解决微服务架构中的通信、安全性、可观察性和流量管理等。提供了一组功能强大的工具和组件,帮助用户更好地管理和控制微服务应用程序。

以下是 Istio 提供的主要功能和组件:

  1. 服务发现和负载均衡:Istio 使用 Envoy 作为其默认的数据平面代理,通过与服务发现平台集成,实现服务的自动发现和负载均衡。这使得 Istio 能够准确地路由请求到目标服务。
  2. 流量管理:Istio 提供了灵活的流量控制机制,包括智能路由、A/B 测试、金丝雀发布和故障注入等。这使得用户可以更好地控制和管理流量,确保应用程序的可靠性和弹性。
  3. 安全性:Istio 提供了丰富的安全功能,包括身份认证、授权、加密通信和访问控制等。它可以通过强制策略和安全控制来保护服务之间的通信,并提供细粒度的访问控制。
  4. 可观察性:Istio 提供了全面的可观察性工具,帮助用户了解和监控微服务的运行状况。这包括请求跟踪、指标收集、日志记录和分布式追踪等功能,使用户能够深入了解服务的性能和健康状况。
  5. 策略和配置管理:Istio 提供了一个控制平面,使用 Mixer 和 Pilot 组件来管理和配置服务的策略和行为。它通过与数据平面代理(如 Envoy)之间的 XDS 协议进行通信,实现动态的配置和更新。

Envoy 和 Istio

上文中说到的那样:Istio 使用 Envoy 作为其默认的数据平面代理,以提供服务之间的通信和流量管理。

Envoy 被用作 Istio 的数据平面组件,负责处理和路由应用程序之间的网络流量。Envoy 提供了丰富的功能,包括负载均衡、流量控制、故障恢复和安全性等,这些功能在 Istio 中被广泛使用。

Istio 和 xds

Istio 使用 XDS(Envoy的动态配置协议)来管理和配置其底层的 Envoy 代理。XDS 是Envoy代理与服务发现平台之间进行通信和配置的协议。

在这里插入图片描述

图中 Sidecar 即为 Envoy。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1420137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异步任务的一些思考

前言 XXL-Job部署教程 项目中,必然少不了数据的导入导出,针对数据的导入导出简单复盘一下。 为了不占用资源消耗时间,影响用户体验,大量数据的导入导出一般都是异步执行 导入的时候,如果数据量很大,一次…

研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结 前言 见《研发日记,Matlab/Simulink避坑指南(一)——Data Store Memory模块执行时序Bug》 见《研发日记,Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《…

安科瑞Acrel-2000ES储能能量管理系统——安科瑞赵嘉敏

一、产品说明 安科瑞Acrel-2000ES储能能量管理系统具有完善的储能监控与管理功能,涵盖了储能系统设备(PCS、BMS、电表、消防、空调等)的详细信息,实现了数据采集、数据处理、数据存储、数据查询与分析、可视化监控、报警管理、统计报表等功能。在高级应…

Qt开源版 vs 商业版 详细比较!!!!

简单整理Qt开源版与商业版有哪些差别,仅供参考。 简单对比 开源版商业版许可证大部分采用对商业使用不友好的LGPLv3具备商业许可证保护代码专有许可证相关大部分模块使用LGPLv3和部分模块使用GPL组成仅第三方开源组件使用Qt的其他许可证Qt模块功能支持支持技术支持…

机器人顶会IROS,ICRA论文模板下载及投稿须知,以及机器人各大会议查询

一、背景 机器人方向,不止期刊TRO,TASE,RAM,RAL上的成果被认可,机器人顶会上的成果也是非常好的。当决定要写一篇IROS论文时,结果IROS论文模板和投稿须知找了半天才找到,且意外发现了一个特别好…

java参数校验,完整报错信息返回

业务要求返回信息中展示所有的异常信息&#xff1a; private void checkParams(DevicesTelemetryToExcelInfoDTO params) {List<String> warnList new ArrayList<>();Set<String> devicesUuidSet new HashSet<>();params.getDevicesTelemetryToExce…

go基础-垃圾回收+混合写屏障GC全分析

垃圾回收(Garbage Collection&#xff0c;简称GC)是编程语言中提供的自动的内存管理机制&#xff0c;自动释放不需要的对象&#xff0c;让出存储器资源&#xff0c;无需程序员手动执行。 Golang中的垃圾回收主要应用三色标记法&#xff0c;GC过程和其他用户goroutine可并发运行…

【linux】-centos7版本前后-变化篇

1.centos7版本前后区别 首先文件系统变化&#xff0c;由EXT4&#xff0c;变为XFS格式。可支持容量500TB的文件&#xff0c;而6代仅能支持16TB。首个进程变为systemd, 替换了熟悉的init进程。它的特点是功能强大&#xff0c;体积也很强大。 systemd给我们带来了一个全家桶命令&…

ESP8266 传感器搭配 Node-RED实时显示数据,邮件告警 实验

前言 esp8266 12f,wif模块,接倾斜传感器,火焰传感器,烟雾传感器,水浸传感器,蜂鸣器。通过mqtt发布数据,并使用node-red实时获取数据,显示到页面上。并且通过邮件和页面两种方式报警。 需求如下: ①倾斜传感器:监测是否保持平衡。UI界面显示平衡度。如果不平衡,UI界…

【ArcGIS微课1000例】0099:土地利用变化分析

本实验讲述在ArcGIS软件中基于两期土地利用数据,做土地利用变化分析。 文章目录 一、实验描述二、实验过程三、注意事项一、实验描述 对城市土地利用情况进行分析时,需要考虑不同时期土地利用图层在空间上的差异性,如农用地转建筑用地的空间变化。而该变化过程表现为各时期…

Sentinel之道:流控模式解析与深度探讨

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Sentinel之道&#xff1a;流控模式解析与深度探讨 前言流控模式基础&#xff1a;Sentinel的多面光环直接模式&#xff1a;规则之箭&#xff0c;直指核心直接模式的核心概念&#xff1a;实际案例演示&a…

STM32——I2C

通信协议见&#xff08;STM32——SPI&#xff09; 一、I2C协议 1.1 I2C协议介绍&#xff1b; I2C是&#xff08;Inter IC Bus&#xff09;是由Philips公司开发的一种通用数据总线&#xff1b; 有多根通信线&#xff1b; 一根SDA&#xff08;串行通信线&#xff09;&#xf…

如何用Docker+jenkins 运行 python 自动化?

1.在 Linux 服务器安装 docker 2.创建 jenkins 容器 3.根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境) 4.运行新的 python 容器&#xff0c;执行 jenkins 从仓库中拉下来的自动化项目 5.执行完成之后删除容器 前言 环境准备 Linux 服务器一台(我的是 CentOS7)…

解析Go语言中HTTP代理的请求和响应过程

在Go语言中&#xff0c;构建一个HTTP代理服务器其实非常简单。那么&#xff0c;当你发送一个请求给代理服务器时&#xff0c;代理服务器到底做了哪些事情呢&#xff1f; 首先&#xff0c;当你向代理服务器发送一个HTTP请求时&#xff0c;代理服务器会先接收到这个请求。这个请…

Android中属性property_get和property_set的详细用法介绍

1&#xff0c;property_get和property_set的作用说明 在Android操作系统中&#xff0c;property_get和property_set是用于获取和设置系统属性的函数。这些属性通常用于存储和读取配置信息&#xff0c;例如设备配置、网络设置、系统参数等。 property_get函数用于获取指定属性…

spring-bus消息总线的使用

文章目录 依赖bus应用接口用到的封装参数类 接收的应用监听器定义的事件类 使用bus定义bus远程调用A应用数据更新后通过bus数据同步给B应用 依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp…

51单片机通过级联74HC595实现倒计时秒表Protues仿真设计

一、设计背景 近年来随着科技的飞速发展&#xff0c;单片机的应用正在不断的走向深入。本文阐述了51单片机通过级联74HC595实现倒计时秒表设计&#xff0c;倒计时精度达0.05s&#xff0c;解决了传统的由于倒计时精度不够造成的误差和不公平性&#xff0c;是各种体育竞赛的必备设…

一家企业需要CRM,通常有以下这些迹象

CRM软件是一个集成的套件——通常是——云应用程序&#xff0c;例如营销云、销售云和服务云&#xff0c;用于收集和存储客户数据。它为销售团队提供了一个集中的平台来管理客户交互并确定活动的优先级&#xff0c;这样客户就不会感到被忽视&#xff0c;从而提升了他们的客户体验…

Flask使用Jinja2渲染模版使用变量实战

前言&#xff1a; Flask 使用 Jinja2 作为其默认模板引擎&#xff0c;这意味着您可以直接在 Flask 应用程序中使用 Jinja2 模板。您可以创建模板文件&#xff0c;然后在视图函数中渲染这些模板&#xff0c;将动态数据传递给模板进行渲染&#xff0c;并最终生成最终的 HTML 页面…

mcu专用看门狗复位芯片(如MAX706)

mcu专用看门狗复位芯片&#xff08;如MAX706&#xff09; 为什么要使用电压复位芯片RESET引脚WDO引脚MR引脚WDI引脚 国产替代型号应用电路1 推荐电路&#xff08;用一个跳线帽使能/关闭看门狗功能&#xff0c;调试MCU时防止看门狗芯片随便触发复位功能&#xff09;&#xff0c;…