云原生架构相关技术_4.服务网格

1.技术特点

         服务网格(ServiceMesh)是分布式应用在微服务软件架构之上发展起来的新技术,旨在将那些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施,实现应用与平台基础设施的解耦。这个解耦意味着开发者无需关注微服务相关治理问题而聚焦于业务逻辑本身,提升应用开发效率并加速业务探索和创新。换句话说,因为大量非功能性从业务进程剥离到另外进程中,服务网格以无侵入的方式实现了应用轻量化,图1展示了服务网格的典型架构。

图1 服务网格的典型架构 

        在这张架构图中,服务A调用服务B的所有请求,都被其下的服务代理截获,代理服务A完成到服务B的服务发现、熔断、限流等策略,而这些策略的总控是在控制平面(Control Plane)上配置。

        从架构上,以开源的Istio服务网格为例,其可以运行在虚拟机或容器中,Istio的主要组件包括Pilot(服务发现、流量管理)、Mixer(访问控制、可观测性)、Citadel(终端用户认证、流量加密);整个服务网格关注连接和流量控制、可观测性、安全和可运维性。虽然相比较没有服务网格的场景多轮4个IPC通信的成本,但整体调用的延迟随着软硬件能力的提升而并不会带来显著的影响,特别是对于白毫秒级别的业务调用而言可以控制在2%以内。从另一方面,服务化的应用并没有做任何改造,就或得了强大的流量控制能力、服务治理能力、4个9(99.99%)以上高可用、容灾和安全等能力,加上业务的横向扩展能力,整体收益仍然是远大于额外IPC通信支出。 

2.主要技术

        2017年发起的服务网格Istio开源项目,清晰定义了数据平面(有开源软件Envoy承载)和管理平台(Istio自身的核心能力)。Istio为微服务架构提供了流量管理机制,同时亦为其他增值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。

        除了Istio外,也有Linked、Consul这样相对小众的ServiceMesh解决方案,与Istio不同的是,它们在功能上不如Istio完整。

        Linked在数据平面采用了Rust编程语言实现了linked-proxy,控制平面与Istio一样采用Go语言编写。最新的性能测试数据显示,Linked在时延、消耗方面比Istio更具优势。

        Consul在控制面上直接使用ConsulServer,在数据面上可以选择性的使用Envoy。

        Conduit作为Kubernetes的超轻量级ServiceMesh,其目标是成为最快、最轻、最简单且最安全的ServiceMesh。它使用Rust构建了快速、安全的数据平面,用Go开发了简单强大的控制平面,总体设计围绕着性能、安全性和可用性进行。它能透明地管理服务之间的通信,提供可测性、可靠性、安全性和弹性的支持。虽然与Linked相仿,数据平面是在应用代码之外运行的轻量级代理,控制平面是一个高可用的控制器,然而与Linked不同的是,Conduit的设计更加倾向于Kubernetes中的低资源部署。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出 目录 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出…

Ethercat设备 转 成profinet IO协议项目案例

1 案例说明 设置网关采集EtherCAT设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 准备工作 3. 仰科网关。支持采集EtherCAT设备数据,profinet IO协议转发。 4. 电脑。IP设置成192.168.1.198,和网关在同一个网段。 5. 网线、12V电源。 3 …

Qt xml学习之calculator-qml

1.功能说明:制作简易计算器 2.使用技术:qml,scxml 3.项目效果: 4.qml部分: import Calculator 1.0 //需要引用对应类的队友版本 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 1.4 import QtScxml…

shopee签名x-sap-ri、x-sap-sec算法还原

最新版签名,免账号登录成功率百分百,需要可d 两种方式base64 MTQzMDY0OTc3OA QXVndXN0MjItZnF4

内存取证例题及Volatility2.6的使用(含命令详细解析)

文章目录 一、背景二、什么是内存取证?三、参考文章四、工具及题目五、解析1、哪个Volatility配置文件最适合这台机器?拓展1.1 2、获取镜像时有多少个进程在运行?拓展1.2 3、cmd.exe的进程ID是什么?4、最可疑的进程名称是什么&…

轻松实现PDF文件的在线浏览

福昕软件最近发布了一款名为Cloud API的产品,通过几行代码即可轻松实现PDF文件的在线浏览。先一睹为快吧。 简介 先看看产品官网:福昕 Cloud API Cloud API包括两个形态产品,一个是在线的PDF查看工具,叫PDF Embed API,另外一个…

面试题 17.05. 字母与数字(前缀和)

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。 示例 1: 输入: ["…

【并发程序设计】13.信号机制

13.信号机制 概念: 信号机制是Unix、类Unix以及其他POSIX兼容的操作系统中的一种进程间通讯方式,它允许进程在发生特定事件时接收通知。 信号机制是操作系统中的一个重要概念,它提供了一种异步的通知机制,用于在进程之间传递消…

每日一题——Python实现PAT甲级1042 Shuffling Machine(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 功能分析 时间复杂度 空间复杂度 总结 代码点评 我要更强 优化方向 …

数据库开发-Mysql03

目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.3 外连接 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 2. 事务 2.1 介绍 2.2 操作 2.3 四大特性 3. 索引 3.1 介绍 3…

光伏企业供应链采购数字化转型升级路径

随着中国光伏行业引领全球,光伏行业竞争激烈。在供应链方面的处理能力也需要有更好的提升。本身光伏企业采购体系依赖传统采购方式,除了需要采购人员耗费大量的时间做供应商的背景调查之外,大量环节却依靠人工线下的方式完成,比如…

微服务 feign-gateway

早期微服务跨集群调用 使用的是Eureka 和RestTemplate,这种写法虽然可以解决服务之间的调用问题 ,但是随着服务的增多,实例变动,早期的写法相当于把请求方式,请求地址,参数写死了,耦合度太高,参…

OpenAI助手API接入-问答对自动生成

支持GPT-3.5-Turbo, GPT-4o, GPT-4-Turbo import json import openai from pathlib import Path import os client openai.OpenAI(base_urlbase_url, api_keyapi_key) file client.files.create( fileopen("H3.pdf", "rb"), purposeassistants ) …

Matplotlib | 绘制柱状图

简介 安装 Matplotlib 开始绘制 简单柱状图 改变颜色 改变纹理 改变边框样式 改变透明度 改变柱子宽度 改变图表标题 ​编辑 并列柱状图 横向柱状图 堆叠柱状图 更多函数 简介 柱状图(Bar chart),是一种以长方形的长度为变量的…

重庆人文科技学院建立“软件安全产学研基地”,推动西南地区软件安全发展

5月29日,重庆人文科技学院与开源网安签订了《产学研校企合作协议》,并举行了“重庆人文科技学院产学研基地”授牌仪式,此次合作不仅深化了双方在软件安全领域的产学研紧密联结,更是对川渝乃至西南地区软件供应链安全发展起到重要的…

缓冲区溢出攻击

缓冲区溢出攻击 缓冲区溢出概述基础概念缓冲区溢出根源缓冲区溢出危害性&普遍性 缓冲区溢出攻击原理内存分配模式缓冲区溢出攻击缓冲区溢出攻击原理缓冲区溢出攻击分类堆栈溢出堆栈相关知识攻击原理 堆溢出攻击堆简介堆溢出DWORD SHOOT BSS段溢出 缓冲区溢出攻击防御措施防…

npm install pubsub-js报错的解决汇总

我在练习谷粒商城P83时,选择分类时触发向后端请求选择分类catId绑定的品牌数据,发现前端控制台报错: "PubSub is not definded",找不到pubsub。 因为缺少pubsub包,所以开始安装此包。 于是在网上一顿搜索猛如虎&…

使用Python库Matplotlib绘制常用图表类型

使用Python库Matplotlib绘图 一、Matplotlib绘图参数设置1.1 设置分辨率和画布大小1.2 保存图片并设置边缘留白为紧凑型1.3 设置坐标轴标签1.4 画直线设置线宽和颜色1.5 画子图1.5.1 通过figure的add_subplot()画子图1.5.2 通过plt的subplots画子图 二、使用Matplotlib中scatte…

Geek Uninstaller丨轻盈免费无需安装,Win超强卸载工具

以前卸载软件用习惯了uninstall tool,今天试了一下geek,对比一下还是geek卸载软件更轻盈一点,没有太多冗杂的步骤。 Geek Uninstaller 是一款轻量级的软件卸载工具,它可以帮助用户彻底删除电脑上的软件,包括那些顽固的…

【因果推断python】8_线性回归模型2

目录 回归理论 非随机数据的回归 回归理论 我不打算深入研究线性回归是如何构建和估计的。然而,一点点理论将有助于解释它在因果推断中的力量。首先,回归解决了理论上的最佳线性预测问题。令 是一个参数向量: 线性回归找到最小化均方误差 (…