云原生架構相關技術_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中的低資源部署。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20106.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20106.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20106.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React@16.x(14)context 舉例 - Form 表單

目錄 1,目標2,實現2.1,index.js2.2,context.js2.2,Form.Input2.3,Form.Button 3,使用 1,目標 上篇文章說到,context 上下文一般用于第3方組件庫,因為使用場景…

Chisel入門——在windows下vscode搭建|部署Scala2.13.3開發環境|用Chisel點亮FPGA小燈等實驗

文章目錄 前言一、vscode搭建scala開發環境1.1 安裝Scala官方插件1.2 創建hello_world.scala文件1.3 確認java的版本(博主使用的是1.8)1.4 下載Scala Windows版本的二進制文件1.5 配置環境變量1.6 交互模式測試一下1.7 vscode運行scala 二、windows安裝sbt2.1 下載sbt2.2 設置環…

函數遞歸及具體例子(持續更新)

遞歸就是函數自己調用自己 求n的階乘 n! n * (n - 1)! 直到n為1或者0的時候為止 舉個例子 int Fun(int n) {if (n < 0){return 1;}else{return n * Fun(n - 1);} }int main() {int n 0;scanf("%d", &n);int ret Fun(n);printf("%d\n", ret…

安裝Kubernetes v3 ----以docker的方式部署

以docker的方式部署 docker run -d \ --restartunless-stopped \ --namekuboard \ -p 80:80/tcp \ -p 10081:10081/tcp \ -e KUBOARD_ENDPOINT"http://192.168.136.55:80" \ -e KUBOARD_AGENT_SERVER_TCP_PORT"10081" \ -v /root/kuboard-data:/data \ e…

springboot中抽象類無法注入到ioc容器

1、背景 在寫代碼時&#xff0c;發現service接口有兩個實現類&#xff0c;并且兩個實現類中沒有對類名重命名&#xff0c;屬性注入的時候也沒有使用byName或Qualifier&#xff0c;正確情況下會發生多實現報錯的問題&#xff0c;以前對這個問題進行解析過。 2、調試過程 我想…

【設計模式】創建型-建造者模式

前言 在面向對象的軟件開發中&#xff0c;構建復雜對象時經常會遇到許多挑戰。一種常見的解決方案是使用設計模式&#xff0c;其中建造者模式是一個強大而靈活的選擇。本文將深入探討建造者模式的原理、結構、優點以及如何在實際項目中應用它。 一、復雜的對象 public class…

飛凌嵌入式FET3568/3568J-C核心板現已適配OpenHarmony4.1

近日&#xff0c;飛凌嵌入式為FET3568/3568J-C核心板適配了OpenHarmony4.1系統&#xff0c;新系統的加持使核心板在兼容性、穩定性與安全性等方面都得到進一步提升&#xff0c;不僅為FET3568/3568J-C核心板賦予了更強大的功能&#xff0c;也為開發者們提供了更加廣闊的創新空間…

每日一練編程題:今天是【接口,多態】

設計程序 : 電腦類的屬性USB接口數組 : 有3個usb插口電腦類的功能 : 通過接口插入外設 (u盤,麥克風,鍵盤等) addUSB(USB usb) { }開機 要求: 電腦開機前,先啟動外設關機 要求: 電腦關機前,先關閉外設 外設類(u盤,麥克風,鍵盤等) 功能 : 啟動 關閉 USB接口 定義usb設備的統一…

python多種方式 保留小數點位數(附Demo)

目錄 前言1. 字符串格式2. round函數3. Decimal模塊4. numpy庫5. Demo 前言 在Python中&#xff0c;保留小數點后特定位數可以通過多種方式實現 以下是幾種常見的方法&#xff0c;并附上相應的代碼示例&#xff1a; 使用字符串格式化&#xff08;String Formatting&#xff…

IDE集成開發環境

IDE集成開發環境&#xff0c;全稱“Integrated Development Environment” 介紹 定義&#xff1a; IDE是用于提供程序開發環境的應用程序&#xff0c;它集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。 組成部分&#xff1a; IDE通常包括代碼編…

Ubuntu20.04 Mysql基本操作知識

#Mysql基本知識 運行環境Ubuntu20.04 1.開啟mysql服務 sytemctl start mysql不然&#xff0c;命令行進入myql交互行提交命令后&#xff0c;就會出現4200錯誤。 2.顯示所有數據庫 SHOW DATABASES;注意復數s&#xff0c;畢竟很多數據庫 3.新建數據庫test CREATE DATABASE …

【學習筆記】計算機組成原理(九+十)

控制單元的功能 文章目錄 控制單元的功能9.1 微操作命令的分析9.1.1 取指周期9.1.2 間址周期9.1.3 執行周期9.1.4 中斷周期 9.2 控制單元的功能9.2.1 控制單元的外特性9.2.2 控制信號舉例9.2.3 多級時序系統9.2.4 控制方式 控制單元的設計10.1 組合邏輯設計10.1.1 組合邏輯控制…

LabVIEW與Simulink的通信及調用方式

LabVIEW和Simulink可以通過多種方式進行通信和集成&#xff0c;實現數據交互和功能調用。常見的通信方式包括TCP/IP、UDP、共享內存等&#xff0c;此外還可以利用MATLAB Script Node和S-Function等直接調用對方的功能。這些方法使得LabVIEW和Simulink能夠協同工作&#xff0c;充…

[Algorithm][動態規劃][子序列問題][最長遞增子序列的個數][最長數對鏈]詳細講解

目錄 1.最長遞增子序列的個數1.題目鏈接2.算法原理詳解3.代碼實現 2.最長數對鏈1.題目鏈接2.算法原理詳解3.代碼實現 1.最長遞增子序列的個數 1.題目鏈接 最長遞增子序列的個數 2.算法原理詳解 注意&#xff1a;本題思路和思維方式及用到的方法很值得考究&#xff0c;個人感…

dubbo復習:(18)服務端Filter

用來在服務響應返回到客戶端之前進行額外處理。 一、定義Filter package cn.edu.tju.config;import org.apache.dubbo.rpc.Filter; import org.apache.dubbo.rpc.Result; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.du…

大量path計算優化方案

1.影響path基礎屬性數據做key緩存&#xff0c;緩存的path應去除坐標變換&#xff0c;歸一化。基礎屬性應滿足CAB, BC-A 2.高頻path操作以&#xff08;keykey操作&#xff09;做新key緩存。 3.高頻修改高級屬性&#xff0c;以新key屬性變更做新key緩存。 4.key與id做中轉映射&am…

redis修改密碼

基于鏡像部署 其實在dockerhub上都有寫 redsi 配置文件從哪找呢? 答案是&#xff1a;從官網或者從github上的release里找到你需要的對應版本解壓后有配置文件 配置文件路徑在哪呢 用redis-server /etc/redis/redis.conf 去指定啟動使用的配置文件 好那么接下來就是一些簡單的…

ad18學習筆記20:焊盤設置Solder Mask Expansion(阻焊層延伸)

【AD18新手入門】從零開始制造自己的PCB_ad18教程-CSDN博客 Altium Designer繪制焊盤孔&#xff08;Pad孔&#xff09;封裝庫的技巧&#xff0c;包括原理圖封裝和PCB封裝_嗶哩嗶哩_bilibili 默認的焊盤中間是有個過孔的&#xff0c;單層焊盤&#xff08;表貼燭盤&#xff09;…

工作流 Activiti7 初始

文章目錄 ??1.1 Activiti 介紹??1.2 Activiti 開發流程??1.3 BPMN 2.0 規范是什么??1.4 BPMN 2.0 基本流程符號????1.4.1 事件 Event????1.4.2 活動????1.4.3 網關 Gateway ??1.5 Activiti API 服務接口????1.5.1 核心Service接口及其獲取 ??1.1 A…

AI科普:TensorFlow 的基本概念和使用場景

TensorFlow是一個開源的深度學習框架&#xff0c;由Google開發并于2015年發布。它提供了一個使用數據流圖進行數值計算的接口&#xff0c;可以在不同的硬件平臺上運行&#xff0c;包括CPU、GPU和TPU。 TensorFlow的核心概念是張量&#xff08;Tensor&#xff09;和計算圖&…