欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么使用微服務(wù)的servicemesh

本篇內(nèi)容主要講解“怎么使用微服務(wù)的service mesh”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么使用微服務(wù)的service mesh”吧!

在雞西等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站建設(shè),雞西網(wǎng)站建設(shè)費(fèi)用合理。

一、service mesh(服務(wù)網(wǎng)格)

1、 service mesh誕生背景

自從微服務(wù)和云計算興起后,誕生了無數(shù)優(yōu)秀的微服務(wù)架構(gòu),給開發(fā)部署帶來了巨大的便利,敏捷開發(fā)獲得了最佳的實(shí)踐場景。然而微服務(wù)模式帶來便利和高性能的同時不可避免會帶來服務(wù)數(shù)量的膨脹,處理鏈路復(fù)雜化,底層架構(gòu)和微服務(wù)框架差異化,因此服務(wù)治理問題成為了新的痛點(diǎn),為了解決以上場景,service mesh 概念誕生。

service mesh (服務(wù)網(wǎng)格)通過在微服務(wù)網(wǎng)絡(luò)中加入一些與業(yè)務(wù)服務(wù)解耦的服務(wù)實(shí)例,充當(dāng)消息轉(zhuǎn)發(fā)的角色,本質(zhì)是在應(yīng)用層加入一個通信管理層來管理網(wǎng)絡(luò)中微服務(wù)的服務(wù)互通、服務(wù)發(fā)現(xiàn)、服務(wù)治理、鏈路追蹤、健康監(jiān)控等問題。使用服務(wù)網(wǎng)格后,在業(yè)務(wù)層面基本不用改動的情況下,以前復(fù)雜系統(tǒng)中需要考慮的跨團(tuán)隊服務(wù)設(shè)計,語言選擇,異架構(gòu)通信,鏈路管理,服務(wù)治理,服務(wù)上云等難題都能在一個統(tǒng)一的基礎(chǔ)設(shè)施框架中得到解決。

那么具體是怎么做到的呢?服務(wù)網(wǎng)格通過增加一個代理服務(wù),與原有微服務(wù)并行跑在一個基礎(chǔ)設(shè)施上,這里的基礎(chǔ)設(shè)施可以是物理機(jī)或者容器。這個代理服務(wù)主要有兩個功能:

(1) 請求代理,所有原本直接發(fā)給微服務(wù)的請求都會被代理實(shí)例攔截,代理程序再將請求轉(zhuǎn)發(fā)給真正的微服務(wù)處理,原有微服務(wù)發(fā)起的所有請求也將先轉(zhuǎn)發(fā)給這個代理,由代理向外部的微服務(wù)網(wǎng)絡(luò)發(fā)起請求。

(2) 組成可見的微服務(wù)網(wǎng)絡(luò)節(jié)點(diǎn),這個代理需要通過某種方式向微服務(wù)網(wǎng)絡(luò)世界暴露自己,比如向某個分布式服務(wù)中心注冊,代表業(yè)務(wù)服務(wù)實(shí)例參與到服務(wù)網(wǎng)絡(luò)中,執(zhí)行復(fù)雜的服務(wù)治理策略、調(diào)用鏈追蹤、路由控制等功能。

下圖中的 proxy 代表服務(wù)網(wǎng)格實(shí)例,server 代表微服務(wù)實(shí)例,這是服務(wù)網(wǎng)格的主要模式 sidecar,可以看到,每個微服務(wù)實(shí)例都有單獨(dú)的服務(wù)網(wǎng)格實(shí)例為它服務(wù),可以理解為在車道上并排奔跑的兩個微服務(wù),server 處理業(yè)務(wù)請求,負(fù)責(zé)業(yè)務(wù)層面的工作,proxy 服務(wù)攔截進(jìn)出 server 的流量,負(fù)責(zé)微服務(wù)通信和治理層面的問題。

本文主要結(jié)合 Apache 項目 servicecomb-mesher 來介紹服務(wù)網(wǎng)格的實(shí)現(xiàn),其他項目不做展開介紹。

怎么使用微服務(wù)的service mesh

圖1 服務(wù)網(wǎng)格鳥瞰圖

二、servicecomb-mesher

Servicecomb-mesher 是 Apache servicecomb 的服務(wù)網(wǎng)格項目。使用 go 語言基于 go-chassis 開源框架實(shí)現(xiàn),go-chassis 框架以插件的形式支持負(fù)載均衡、流量控制、調(diào)用鏈追蹤、熔斷降級、服務(wù)治理、動態(tài)配置管理等微服務(wù)能力。mesher目前支持sidecar和edgeservice兩種運(yùn)行模式。支持服務(wù)間使用http、grpc協(xié)議通信,有良好的可擴(kuò)展性,用戶可自行擴(kuò)展自己的協(xié)議。mesher以調(diào)用鏈的形式處理請求,可以根據(jù)配置自由裁剪處理函數(shù)。在控制面mesher天然能夠接入apache servicecomb微服務(wù)體系。并對當(dāng)前主流的service-mesh具有兼容性,支持kubernetes,可接入Istio。

怎么使用微服務(wù)的service mesh

圖2  mesher交互模型圖

2.1 Servicecomb-mesher原理淺析

我們以 sidecar 模式運(yùn)行 mesher,通過一個具體的 http 協(xié)議通信為例介紹 mesher 做了什么工作。

(1) 我們啟動一個真正的 http server 作為業(yè)務(wù)服務(wù),這里對 http server 的實(shí)現(xiàn)語言,服務(wù)框架沒有任何限制;

(2)啟動 mesher,mesher會根據(jù)配置信息啟動兩個 http 服務(wù),分別監(jiān)聽在本地回環(huán)和本地 ip 上(如127.0.0.1:30101 和 192.168.88.64:30101)。mesher 通過127.0.0.1:30101 處理內(nèi)部業(yè)務(wù)服務(wù)對外部的請求流量;監(jiān)聽在 192.168.88.64:30101 的服務(wù)用于處理外部對內(nèi)部業(yè)務(wù)服務(wù)的請求流量;

(3)如圖,client 作為一個請求發(fā)起方,client 的請求通過代理轉(zhuǎn)發(fā)到與它綁定的 mesher(127.0.0.1:30102);

(4) mesher(127.0.0.1:30102)接收到請求后,使用 LocalRequestHandler 處理請求,首先準(zhǔn)備 consumer 調(diào)用鏈,獲取并解析 client 調(diào)用的服務(wù)名和端口,創(chuàng)建 Invocation,之后通過 consumer 調(diào)用鏈進(jìn)行處理,最后建立一個 rest-client 對外部的目的服務(wù)(192.168.88.64:30101)發(fā)起調(diào)用;

(5)  監(jiān)聽在 192.168.88.64:30101 的 mesher 接收到請求后,調(diào)用 RemoteRequestHandler 處理請求,首先將請求轉(zhuǎn)為 Invocation,準(zhǔn)備 provider 調(diào)用鏈,解析地址,將目的地址替換為業(yè)務(wù)服務(wù)的地址,然后調(diào)用處理鏈處理請求,最終向內(nèi)部真正的業(yè)務(wù) server 發(fā)起 http 調(diào)用;

監(jiān)聽在 127.0.0.1:30101 的 mesher 作為 consumer,使用處理請求,consumerChain 調(diào)用鏈默認(rèn)包含如下處理器(handler):

  • chassisHandler.Router,chassisHandler.RatelimiterConsumer

  • chassisHandler.BizkeeperConsumer

  • chassisHandler.Loadbalance

  • chassisHandler.Transport

監(jiān)聽在 192.168.88.64:30101 的 mesher 作為 provider 處理請求,providerChain 調(diào)用鏈默認(rèn)包含如下處理器(handler):

  • chassisHandler.RatelimiterProvider

  • chassisHandler.Transport

怎么使用微服務(wù)的service mesh

圖3 mesher通信模型圖

通過以上分析可以看到,mesher 實(shí)際上在應(yīng)用層作為一個代理,攔截并代替業(yè)務(wù)服務(wù)發(fā)起和接收請求,mesher 和業(yè)務(wù)服務(wù)各司其職,業(yè)務(wù)服務(wù)只要保證業(yè)務(wù)功能正常,mesher 負(fù)責(zé)服務(wù)治理層面,構(gòu)建可靠的通信鏈路。我們只要保證 mesher 與業(yè)務(wù)的互通以及 mesher 與外部其他 mesher 之間的通信就可以保證提供服務(wù),那么這里 mesher 是如何做到的呢?這個問題就涉及到 go-chassis 開源框架的服務(wù)發(fā)現(xiàn)和控制面管理功能。mesher 使用 go-chassis 底座的 register 包將自己注冊到服務(wù)中心實(shí)例,這里我們使用 Apache 的 servicecomb-servicecenter,它是一個接收微服務(wù)注冊并進(jìn)行管理的服務(wù)中心,所有連接到 servicecenter 的服務(wù)都可以通過服務(wù)中心向其他服務(wù)暴露自己,并通過微服務(wù)名獲取到其他服務(wù)實(shí)例的 ip 和 port。mesher 的控制面功能支持?jǐn)嗦菲?、?fù)載均衡、頻率限制、錯誤注入等,可以接入istio或者使用archaius以讀取配置的方式。

三、體質(zhì)指數(shù)(Bmi)入門案例

3.1 背景

了解了 mesher 的原理后,我們通過一個具體的用例幫助用戶快速入門 mesher 的 sidecar 模式。希望幫助用戶通過該例子,能夠快速上手使用 mesher 服務(wù),深入了解 mesher 的工作模式和原理,并掌握如何通過 mesher 的幫助改造已有的 http 服務(wù),接入 servicecomb 微服務(wù)體系,獲得負(fù)載均衡、流控、服務(wù)治理、調(diào)用鏈追蹤等微服務(wù)能力。

3.2 用例服務(wù)介紹

怎么使用微服務(wù)的service mesh

圖4 mesher案例部署圖

1、httpserver_calculator:基于python語言實(shí)現(xiàn)的http體質(zhì)指數(shù)服務(wù),可替換為任何語言開發(fā)的http服務(wù);

2、httpserver_webapp:基于 nodejs 語言實(shí)現(xiàn)的web服務(wù),用于在瀏覽器上展示可視化結(jié)果;

3、mesher_webapp:通過 sidecar 模式為httpserver_webapp 提供服務(wù)的 mesher 實(shí)例;

4、mesher_calculator:通過 sidecar 模式為httpserver_calculator 提供服務(wù)的 mesher 實(shí)例;

5、servicecenter:服務(wù)中心,接收 mesher 服務(wù)的注冊,提供服務(wù)發(fā)現(xiàn)、路由查詢、服務(wù)監(jiān)控功能;

流程詳情:

  1. 瀏覽器[192.168.88.78]對 httpserver_webapp 服務(wù)發(fā)起 http 調(diào)用 http://192.168.88.64:4597/calculator/bmi。

  2. httpserver_webapp 服務(wù)接收請求,并發(fā)起對地址 http://calculator/bmi 的 http 調(diào)用,因為設(shè)置了代理http://127.0.0.1:30101,httpserver_webapp 發(fā)起的請求將被轉(zhuǎn)發(fā)到 mesher_webapp 服務(wù)。

  3. mesher_webapp 根據(jù)請求的服務(wù)名(microservice.yaml 配置的服務(wù)名 calculator)從服務(wù)中心 servicecenter 獲得該服務(wù)名的地址,轉(zhuǎn)發(fā)到 mesher_calculator。

  4. mesher_calculator 服務(wù)根據(jù)設(shè)置好的specific地址,轉(zhuǎn)發(fā)到自己綁定的體質(zhì)指數(shù)calculator服務(wù)(httpserver_calculator)進(jìn)行處理。

  5. httpserver_calculator 會根據(jù)用戶身高和體重進(jìn)行計算,并返回自己的服務(wù)標(biāo)識展示在界面上。流程圖如下所示:

怎么使用微服務(wù)的service mesh

圖5 mesher案例流程圖圖

2.4 測試環(huán)境搭建(linux)

1、編譯 mesher :下載地址(https://github.com/apache/servicecomb-mesher)

按README.md編譯項目得到可執(zhí)行文件mesher(linux),windows(mesher.exe);

2、創(chuàng)建 mesher_webapp 用于為 httpserver_webapp 服務(wù):

在 mesher 目錄下執(zhí)行下列l(wèi)inux命令創(chuàng)建 mesher_webapp,此處除了可執(zhí)行文件,還需要拷貝conf

mkdir /usr/local/src/mesher_webapp

更改 conf 中配置文件,microservice.yaml 中的服務(wù) name,從 hellomesher 改為 webapp;更改 chassis.yaml 中監(jiān)聽的服務(wù)地址,從本地回環(huán)(127.0.0.1)地址改為內(nèi)網(wǎng) ip(linux下通過 ifconfig 查看,如192.168.88.64):

listenAddress: 127.0.0.1:40101  ->  listenAddress: 192.168.88.64:40101

3、創(chuàng)建mesher_calculator

mkdir /usr/local/src/mesher_calculator

更改conf中配置文件,分別更改microservice.yaml中的服務(wù)name為體質(zhì)指數(shù)微服務(wù)名calculator;
更改mesher_calculator配置chassis.yaml監(jiān)聽的地址和端口:

listenAddress: 127.0.0.1:40101  ->  listenAddress: 192.168.88.64:40107

4、 啟動mesher服務(wù),分別進(jìn)入mesher_webapp和mesher_calculator,啟動服務(wù),其中需要設(shè)置mesher_calculator的SPECIFIC_ADDR地址,該地址用于建立mesher和http服務(wù)邏輯上的綁定關(guān)系;

cd /usr/local/src/mesher_calculator

5、 啟動httpserver_webapp服務(wù):

cd /usr/local/src/httpserver_webapp

6、 httpserver_calculator 作為體質(zhì)指數(shù)計算服務(wù),需要安裝python2.7,依賴BaseHTTPServer包:

cd /usr/local/src/httpserver_calculator

怎么使用微服務(wù)的service mesh

圖6 servicecenter服務(wù)監(jiān)控圖

2.5 測試

1、瀏覽器打開頁面 http://192.168.88.64:30103 (如果打不開需要開啟服務(wù)中心 service-center 的 front 服務(wù),參考http://servicecomb.apache.org/cn/users/setup-environment/#%E8%BF%90%E8%A1%8Cservice-center

查看服務(wù),其中地址 service-center 服務(wù)啟動的地址,看到如圖界面。

webapp 代表 mesher_webapp 服務(wù),這里展示的是 microservice.yaml 中配置的服務(wù)名;calculator 代表 mesher_calculator 服務(wù),這里展示的是 microservice.yaml 中配置的服務(wù)名。大寫的 SERVICECENTER 是服務(wù)中心。

怎么使用微服務(wù)的service mesh

圖7 servicecenter服務(wù)監(jiān)控圖

2、瀏覽器打開 http://192.168.88.64:4597,可以看到如下界面,為 webapp 呈現(xiàn)的靜態(tài)頁面:

怎么使用微服務(wù)的service mesh

圖8 bmi調(diào)用結(jié)果展示界面圖

3、輸入?yún)?shù)(180、70)點(diǎn)擊 submit,觀察結(jié)果:

怎么使用微服務(wù)的service mesh

圖9 bmi調(diào)用結(jié)果圖

2.6 mesher進(jìn)階

2.6.1 負(fù)載均衡

怎么使用微服務(wù)的service mesh

圖10 mesher 負(fù)載均衡案例部署圖

啟動一個新的 mesher_calculator 和 httpserver_calculator 實(shí)例用于負(fù)載均衡測試,可以使用例子目錄test_balance下的服務(wù):

1、修改 mesher_calculator 配置文件 microservice.yaml 中的服務(wù) name 為 calculator;
更改配置 chassis.yaml 監(jiān)聽的地址和端口避免沖突:

listenAddress: 127.0.0.1:40101  ->  listenAddress: 192.168.88.64:40102

2、啟動 mesher_calculator,需要設(shè)置 mesher_calculator 的 SPECIFIC_ADDR 地址,該地址用于建立 mesher 和 http 服務(wù)邏輯上的綁定關(guān)系;

export SPECIFIC_ADDR=127.0.0.1:4537

3、默認(rèn)情況下會使用 roundbin(輪詢)負(fù)載均衡算法,另外還支持 Random 和 SessionStickiness 負(fù)載均衡算法。我們修改 mesher_webapp 的配置文件 chassis.yaml,將負(fù)載均衡方法配置為 Random:

loadbalance:

4、開啟 httpserver_calculator 服務(wù)新實(shí)例,監(jiān)聽4537端口。

5、此時點(diǎn)擊 Submit 按鈕就可以看到如下兩個界面中的 BMI Instance ID 隨機(jī)出現(xiàn);

怎么使用微服務(wù)的service mesh

怎么使用微服務(wù)的service mesh

圖11 bmi調(diào)用結(jié)果圖

2.6.2 流量控制

1、添加流量控制配置,重啟服務(wù),更改 mesher_calculator配置文件 chassis.yaml,其中流量控制包含下列選項:

flowcontrol:

該頻率限制標(biāo)識每秒接受的請求為0,即不提供服務(wù)。

2、驗證,點(diǎn)擊 Submit 按鈕,此時能看到由于流控受限而請求被拒的界面,請求已經(jīng)無法到達(dá) httpserver_calculator。

怎么使用微服務(wù)的service mesh

怎么使用微服務(wù)的service mesh

圖13 流量控制展示圖

2.6.3 服務(wù)治理

2.6.3.1 灰度發(fā)布

1、更新版本號:分別更改兩個 mesher_calculator 實(shí)例的配置文件 microservice.yaml,更新 version 字段分別為1.1.1和1.1.2,重啟 mesher 服務(wù),可以看到服務(wù)版本號發(fā)生了變更。如圖中所示:

怎么使用微服務(wù)的service mesh

圖14 服務(wù)監(jiān)控圖

2、配置路由信息,更改 mesher_webapp 的配置文件 router.yaml,按實(shí)例版本更新權(quán)重信息,并重啟服務(wù):

servicecomb:

3、驗證,此時大量點(diǎn)擊 Submit 按鈕就可以看到 BMI Instance ID 按配置的比例交替出現(xiàn)。

2.6.3.2 服務(wù)熔斷及恢復(fù)

1、更改斷流器配置,更改 mesher_webapp 的配置文件 chassis.yaml,設(shè)置其中的斷流器配置為:

isolation:

2、關(guān)閉 test_balance 目錄下的服務(wù)實(shí)例。

3、驗證,傳入負(fù)數(shù)參數(shù),響應(yīng)超時,mesher_webapp 斷流器生效,圖16中三個子圖分別是:

(1) mesher_webapp 日志截圖,表明斷流器啟用。

(2) 傳入負(fù)數(shù)參數(shù)觸發(fā)斷流器時的返回值。

(3) 表示斷流器生效后對所有請求都按配置返回 nil。

怎么使用微服務(wù)的service mesh

怎么使用微服務(wù)的service mesh

怎么使用微服務(wù)的service mesh

圖16 服務(wù)熔斷展示圖

4、根據(jù)配置參數(shù) sleepWindowInMilliseconds,過10秒后服務(wù)自動恢復(fù)。

2.6.4 分布式調(diào)用鏈追蹤

1、mesher main 文件中添加對zipkin庫依賴:

_ "github.com/go-chassis/go-chassis-plugins/tracing/zipkin"

2、啟發(fā)器 bootstrap.go 中添加默認(rèn)處理函數(shù),如圖17中箭頭所示:

怎么使用微服務(wù)的service mesh

圖17 handlerchain調(diào)用圖

3、重新編譯,分別替換 **mesher_webapp **和 **mesher_calculator **的可執(zhí)行文件,啟動 mesher 服務(wù)。

4、 使用 Docker 運(yùn)行 Zipkin 分布式追蹤服務(wù)

docker run -d -p 9411:9411 openzipkin/zipkin

5、多次點(diǎn)擊 Submit 按鈕發(fā)起服務(wù)調(diào)用。

6、打開 http://192.168.88.64:9411 可查看分布式追蹤結(jié)果如圖18,可以通過 host 地址判斷調(diào)用路徑:

怎么使用微服務(wù)的service mesh

圖18 分布式追蹤結(jié)果圖

到此,相信大家對“怎么使用微服務(wù)的service mesh”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

名稱欄目:怎么使用微服務(wù)的servicemesh
地址分享:http://aaarwkj.com/article36/jeeepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、定制網(wǎng)站、自適應(yīng)網(wǎng)站、App設(shè)計、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
国产女片xb内射在线| 国产三级黄在线观看| 日韩中字伦理熟妇人妻| 日本少妇入口一区二区| 欧美在线观看黄片视频| 开心五月婷婷丁香综合| 婷婷色中文字幕综合在线| 特黄日韩免费一区二区三区| 亚洲巨人精品福利导航| 97精品免费视频观看| 免费日本高清色噜噜视频| 日韩中字伦理熟妇人妻| 午夜视频免费看一区二区| 国产一区二区高清在线| 色婷婷狠狠久久综合中文一本| 亚洲视频一直看一直爽| 亚洲一区二区色黄大片| 亚洲成在人线天堂网站| 国产传媒视频在线观看| 未满十八禁止下载软件| 国产男女免费操作视频| 熟女一区二区蜜桃视频| 亚洲乱色熟女一区二区三区麻豆 | 成人性生交大片免费看中文 | 国产精品国产三级区别| 国产一区二区精品久久岳| 高清不卡av在线播放| 天天干夜夜泡天天操| 91精品夜夜夜一区二区| 97成人在线视频免费播放| 日韩精品中文女同在线播放| 日本午夜熟女九色视频| 欧美黄片免费在线视频| 亚洲国产色一区二区三区| 99久久精品免费国产一区| 久久婷婷av一区二区三区| 天堂av日韩在线播放| 国语av一区二区三区| 亚洲一区二区精品自拍| 国产91久久精品一区二区| 精品人妻一区二区在线99|