什么是ServiceMesh(Istio一)

現在最火的后端架構無疑是微服務了,微服務將之前的單體應用拆分成了許多獨立的服務應用,每個微服務都是獨立的,好處自然很多,但是隨著應用的越來越大,微服務暴露出來的問題也就隨之而來了,微服務越來越多,管理越來越麻煩,特別是要你部署一套新環境的時候,你就能體會到這種痛苦了,隨之而來的服務發現、負載均衡、Trace跟蹤、流量管理、安全認證等等問題。如果從頭到尾完成過一套微服務框架的話,你就會知道這里面涉及到的東西真的非常多。當然隨著微服務的不斷發展,微服務的生態也不斷完善,最近新一代的微服務開發就悄然興起了,那就是服務網格/Service Mesh。

什么是Service Mesh?

Service Mesh 是一個非常新的名詞,最早是2016年由開發 Linkerd 的 Buoyant 公司提出的,伴隨著 Linkerd 的傳入, Service Mesh 的概念也慢慢進入國內技術社區,現在主流的叫法都叫:服務網格。

服務網格是一個用于處理服務間通信的基礎設施層,它負責為構建復雜的云原生應用傳遞可靠的網絡請求。在實踐中,服務網格通常實現為一組和應用程序部署在一起的輕量級的網絡代理,但對應用程序來說是透明的。

要理解網格的概念,就得從服務的部署模型說起:

單個服務調用,表現為sidecar

Service Mesh 的部署模型,先看單個的,對于一個簡單請求,作為請求發起者的客戶端應用實例,會首先用簡單方式將請求發送到本地的 Service Mesh 實例。這是兩個獨立進程,他們之間是遠程調用。

Service Mesh 會完成完整的服務間調用流程,如服務發現負載均衡,最后將請求發送給目標服務,這表現為 Sidecar 方式。

部署多個服務,表現為通訊層

![WechatIMG195.png][2]

多個服務調用的情況,在這個圖上我們可以看到 Service Mesh 在所有的服務的下面,這一層被稱之為服務間通訊專用基礎設施層。Service Mesh 會接管整個網絡,把所有的請求在服務之間做轉發。在這種情況下,我們會看到上面的服務不再負責傳遞請求的具體邏輯,只負責完成業務處理。服務間通訊的環節就從應用里面剝離出來,呈現出一個抽象層。

有大量服務,表現為網絡

如果有大量的服務,就會表現出來網格,圖中左邊綠色方格是應用,右邊藍色的方框是 Service Mesh,藍色之間的線條是表示服務之間的調用關系。Sidecar 之間的連接就會形成一個網絡,這個就是服務網格名字的由來,這個時候代理體現出來的就和前面的 Sidecar 不一樣了,形成網狀。

首先第一個,服務網格是抽象的,實際上是抽象出了一個基礎設施層,在應用之外。其次,功能是實現請求的可靠傳遞。部署上體現為輕量級的網絡代理。最后一個關鍵詞是,對應用程序透明。

大家注意看,上面的圖中,網絡在這種情況下,可能不是特別明顯。但是如果把左邊的應用程序去掉,現在只呈現出來 Service Mesh 和他們之間的調用,這個時候關系就會特別清晰,就是一個完整的網絡。這是 Service Mesh 定義當中一個非常重要的關鍵點,和 Sidecar 不相同的地方:不再將代理視為單獨的組件,而是強調由這些代理連接而形成的網絡。在 Service Mesh 里面非常強調代理連接組成的網絡,而不像 Sidecar 那樣看待個體。

現在我們基本上把 Service Mesh 的定義介紹清楚了,大家應該可以大概了解什么是 Service Mesh 了。現在實現 Service Mesh 的開源方案有很多,比如 Linkerd、Istio 等,當然目前最流行最火熱的還是要數 Istio 了,記下來我們就來開始講解 Istio 的使用。

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

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

相關文章

【Python】使用python解析普通格式的報文為someip格式報文

文章目錄 1.安裝scapy庫2.示例 1.安裝scapy庫 使用 pip 安裝 scapy 第三方庫,打開 cmd,輸入以下命令: pip install scapy出現如圖所示,表示安裝成功: 2.示例 要解析someip格式報文,需要導入someip模塊&a…

【Spring 】了解Spring AOP

目錄 一、什么是Spring AOP 二、AOP的使用場景 三、AOP組成 四、Spring AOP的實現 1、添加Spring AOP依賴 2、定義切面和切點 3、定義相關通知 五、 AOP的實現原理 1、什么是動態代理 2、 JDK代理和CGLIB代理的區別 一、什么是Spring AOP AOP(Aspect Ori…

PLY模型格式詳解【3D】

本文介紹PLY 多邊形文件格式,這是一種用于存儲被描述為多邊形集合的圖形對象。 PLY文件格式的目標是提供一種簡單且易于實現但通用的格式足以適用于各種模型。 PLY有兩種子格式:易于入門的 ASCII 表示形式和用于緊湊存儲和快速保存和加載的二進制格式。 …

【FastColoredTextBox】C# 開源文本編輯控件

主界面截圖 使用Demos演示 FastColoredTextBox 是一個用于在 C# 程序中實現高亮語法著色、代碼編輯和文本顯示的自定義控件。它提供了許多功能,包括: 語法高亮:FastColoredTextBox 支持多種語言的語法高亮,可以根據語法規則將不同…

write javaBean error, fastjson version 1.2.76

fastjson JSON.toJSONString 報錯: > [0] JavaBeanSerializer.java->541: com.alibaba.fastjson.serializer.JavaBeanSerializer->write()> [1] JavaBeanSerializer.java->154: com.alibaba.fastjson.serializer.JavaBeanSerializer->write()>…

vite4+vue3+electron23.3+ts桌面應用bs端開發 打包windows、linux、max三個系統的安裝包

vite4vue3electron23.3ts桌面應用bs端開發 打包windows、linux、max三個系統的安裝包 主要包依賴 "electron-store": "^8.1.0", //全局數據狀態管理,可選擇性安裝"electron": "23.3.8","electron-builder": &q…

Android 使用SQLite的案例詳解

1、說明 sqlite是個輕量級的數據庫,可用于嵌入式。有時候做本地的web開發的時候,我會把sqlite作為內置數據庫,這樣便于部署,直接啟動應用即可。 這里主要是將android中的使用過程記錄一下。主要包含,數據如何初始化,在不同的activity中如何使用,以及增刪改查的實現。 …

網頁顯示攝像頭數據的方法---基于web video server

1. 背景: 在ros系統中有發布攝像頭的相關驅動rgb數據,需求端需要將rgb數據可以直接在網頁上去顯示。 問題解決: web_video_server功能包,相關鏈接: web_video_server - ROS Wiki 2. 下載,安裝和編譯&a…

Ubuntu20 ctrl+alt+T無法打開終端

事情是這樣的,某天改了下python版本,發現linux默認打開終端的快捷鍵ctrlaltT寄了,網上給出的都是修改快捷鍵不出意外肯定沒用 但是幸好我們是會分析的,我看到,很多回答說新增一個快捷鍵運行的命令是gnome-terminal&…

21、stm32使用LTDC驅動LCD

注:本文基于stm32使用FMC驅動SDRAM(IS42S32800G-6BLI)工程繼續開發 本例使用安富萊的H743XIH板子驅動LTDC點亮7寸LCD 硬件接線:RGB888 一、cubemx配置 1、LTDC配置 注意此引腳應于上面的硬件接線圖一致 2、配置DMA2D 3、背光引腳和觸摸引腳 4、時鐘…

在 IntelliJ IDEA 中使用 Docker 開發指南

目錄 一、IDEA安裝Docker插件 二、IDEA連接Docker 1、Docker for Windows 連接 2、SSH 連接 3、Connection successful 連接成功 三、查看Docker面板 四、使用插件生成鏡像 一、IDEA安裝Docker插件 打開 IntelliJ IDEA,點擊菜單欄中的 "File" -&g…

LeetCode 778. Swim in Rising Water【最小瓶頸路;二分+BFS或DFS;計數排序+并查集;最小生成樹】2096

本文屬于「征服LeetCode」系列文章之一,這一系列正式開始于2021/08/12。由于LeetCode上部分題目有鎖,本系列將至少持續到刷完所有無鎖題之日為止;由于LeetCode還在不斷地創建新題,本系列的終止日期可能是永遠。在這一系列刷題文章…

cs231n assignment 3 Q2 Image Captioning with Vanilla RNNs

文章目錄 嫌啰嗦直接看代碼Q2 Image Captioning with Vanilla RNNs一個給的工具代碼里的bug問題展示問題解決思路解決辦法 rnn_step_forward題面解析代碼輸出 rnn_step_backward題面解析代碼輸出 rnn_forward題面解析代碼輸出 rnn_backward題面解析代碼輸出 word_embedding_for…

使用 BERT 進行文本分類 (02/3)

? 一、說明 在使用BERT(1)進行文本分類中,我向您展示了一個BERT如何標記文本的示例。在下面的文章中,讓我們更深入地研究是否可以使用 BERT 來預測文本是使用 PyTorch 傳達積極還是消極的情緒。首先,我們需要準備數據…

3.1 Qt樣式選擇器

本期內容 3.1 樣式選擇器 3.1.1 Universal Selector (通用選擇器) 3.1.2 Type Selector (類型選擇器) 3.1.3 Property Selector (屬性選擇器) 3.1.4 Class Selector (類選擇器) 3.1.5 ID Selector (ID選擇器) 3.1.6 Descendant Selector (后裔選擇器) 3.1.7 Chil…

前端跨域的原因以及解決方案(vue),一文讓你真正理解跨域

跨域這個問題,可以說是前端的必需了解的,但是多少人是知其然不知所以然呢? 下面我們來梳理一下vue解決跨域的思路。 什么情況會跨域? ? 跨域的本質就是瀏覽器基于同源策略的一種安全手段。所謂同源就是必須有以下三個相同點:協議相同、域名…

WinCC V7.5 中的C腳本對話框不可見,將編輯窗口移動到可見區域的具體方法

WinCC V7.5 中的C腳本對話框不可見,將編輯窗口移動到可見區域的具體方法 由于 Windows 系統更新或使用不同的顯示器,在配置C動作時,有可能會出現C腳本編輯窗口被移動到不可見區域的現象。 由于該窗口無法被關閉,故無法進行進一步…

KafkaStream:Springboot中集成

1、在kafka-demo中創建配置類 配置kafka參數 package com.heima.kafkademo.config;import lombok.Data; import org.apache.kafka.common.serialization.Serdes; import org.apache.kafka.streams.StreamsConfig; import org.springframework.boot.context.properties.Configu…

8月11日上課內容 nginx的多實例和動靜分離

多實例部署 在一臺服務器上有多個tomcat的服務。 配置多實例之前,看單個實例是否訪問正常。 1.安裝好 jdk 2.安裝 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 cp -a /u…

Linux系統管理:虛擬機ESXi安裝

目錄 一、理論 1.VMware Workstation 2.VMware vSphere Client 3.ESXi 二、實驗 1.ESXi 7安裝 一、理論 1.VMware Workstation 它是一款專業的虛擬機軟件,可以在一臺物理機上運行多個操作系統,支持Windows、Linux等操作系統,可以模擬…