<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go 開源說第九期:go chassis——微服務(wù)開發(fā)框架

          共 1818字,需瀏覽 4分鐘

           ·

          2021-04-28 16:43


          點(diǎn)擊藍(lán)字

          關(guān)注我們


          本文由“GO開源說”第九期 《go chassis——微服務(wù)開發(fā)框架》直播內(nèi)容修改整理而成,視頻內(nèi)容較長,本文內(nèi)容有所刪減和重構(gòu)。


          在2020年上海Gopher?會(huì)上,我分享了主題“華為云的Go語?云原?實(shí)踐”。其中講述了我們使?Go語?構(gòu)建云服務(wù)的經(jīng)驗(yàn),并講述了Go chassis的理念和設(shè)計(jì)。本次開源說,我將講述它的設(shè)計(jì)與思考,以及我們?cè)谖⒎?wù)落地中的經(jīng)驗(yàn)和踩坑。更加具體的信息請(qǐng)觀看直播


          我將簡單的回顧下?會(huì)的內(nèi)容并講述今天的主題

          Go chassis的誕?背景

          • 規(guī)劃范:規(guī)范化的框架可以在微服務(wù)架構(gòu)下落地通?能?

          • 成本:云服務(wù)資源占?成本降低

          • 異構(gòu)服務(wù):?個(gè)后臺(tái)服務(wù)可能有多種具體實(shí)現(xiàn)

          • 基線化需求:提供通?能?,引?即?效,?需編碼



          圖中最上邊的部分為?于管控的服務(wù),中間是微服務(wù)框架主要處理的部分,也就是系統(tǒng)內(nèi)部東?向的流量。業(yè)務(wù)流量都要經(jīng)過這?,通過管控服務(wù)進(jìn)?微服務(wù)的管理。最下邊的部分是插件化的組件,插件接?規(guī)范內(nèi)置在框架中,通過import?式顯示引?插件。


          設(shè)計(jì)上的考慮


          什么是個(gè)好的微服務(wù)開發(fā)框架,應(yīng)該是在最?化業(yè)務(wù)適配量和學(xué)習(xí)曲線為前提下,最?化的提升?個(gè)團(tuán)隊(duì)的?產(chǎn)效率和交付的服務(wù)質(zhì)量


          面向故障的注冊(cè)發(fā)現(xiàn)設(shè)計(jì)


          中?化的服務(wù)總是?臨的穩(wěn)定性的挑戰(zhàn),看似簡單的注冊(cè)發(fā)現(xiàn),其實(shí)有著很多的設(shè)計(jì)考慮,也經(jīng)過了?量的現(xiàn)?考驗(yàn)。注冊(cè)中?實(shí)際上?臨的是注冊(cè),?跳,發(fā)現(xiàn)3種不同的流量。隨著微服務(wù)實(shí)例的增多,流量增加?然?臨了很多問題。所以在做這??設(shè)計(jì)和編寫代碼時(shí),應(yīng)該?向故障去思考。

          ?如:

          • 使?避讓算法進(jìn)?重試 -- 避免調(diào)??暴

          • 中?斷服不影響業(yè)務(wù)系統(tǒng) -- 保證業(yè)務(wù)不斷服

          • 只拉取??關(guān)?的服務(wù) -- 減少數(shù)據(jù)量,即減少c/s兩端的cpu和內(nèi)存壓?

          • 不可變實(shí)例ID -- 避免負(fù)載均衡不均勻



          本地緩存設(shè)計(jì)


          通過緩存可以應(yīng)對(duì)中?斷服,另外完全中?的API設(shè)計(jì),可以允許任意注冊(cè)中?的接?,?如Consul,Eureka,Service Center。開放性的緩存API也允許你隨時(shí)訪問,開發(fā)定制特性


          通信協(xié)議中立設(shè)計(jì)



          ?論是http還是grpc,在框架內(nèi)核處理的過程中都會(huì)被標(biāo)準(zhǔn)化為Invocation統(tǒng)?模型,路由管理,調(diào)?鏈跟蹤,限流等能?都基于該模型進(jìn)?開發(fā),這樣當(dāng)你要進(jìn)?定制協(xié)議時(shí),就可以復(fù)?同?份邏輯,?在?絡(luò)中傳輸?shù)倪^程中依然是原?的協(xié)議,所以和其他?態(tài)的集成也是開放性的,不存在任何私有協(xié)議在?絡(luò)上傳輸。


          路由管理設(shè)計(jì)


          有了注冊(cè)發(fā)現(xiàn),統(tǒng)?緩存,協(xié)議中?的設(shè)計(jì),我們就能設(shè)計(jì)統(tǒng)?的路由管理能?。可以基于任意微服務(wù)元數(shù)據(jù)定義路由規(guī)則來實(shí)現(xiàn)?絲雀發(fā)布,藍(lán)綠發(fā)布等能?。?路由的配置可以來?不同的數(shù)據(jù)源,?持?jǐn)U展,這部分能?有g(shù)o-archaius提供


          盡量兼容原本的編程模型

          我們提到學(xué)習(xí)成本,所以要盡量復(fù)?已知的知識(shí)



          曾經(jīng)踩過熔斷的坑

          https://juejin.im/post/5bd4169c6fb9a05cf9087a5c


          忠告所有使?熔斷和降級(jí)功能的朋友,使?之前要思考清楚,充分的進(jìn)?測試


          可觀察性


          只需要引?go chassis,他就會(huì)?動(dòng)幫你導(dǎo)出符合prometheus標(biāo)準(zhǔn)的數(shù)據(jù),以便于接?到現(xiàn)有的監(jiān)控系統(tǒng)中,以下是?些數(shù)據(jù),供參考,?如錯(cuò)誤數(shù),請(qǐng)求數(shù),延遲,業(yè)務(wù)處理時(shí)?等


          微服務(wù)框架和服務(wù)網(wǎng)格選擇困難?

          服務(wù)網(wǎng)格是下一代微服務(wù)?

          • 應(yīng)該共同使?么?

          • ?選?怎么選?

          • 我的業(yè)務(wù)到底適合哪種?案?

          從我的實(shí)踐經(jīng)驗(yàn)來看,其實(shí)沒有真正的銀彈,所以微服務(wù)框架和服務(wù)?格只會(huì)?期共存,所以我們才會(huì)?研mesher作為go chassis和spring cloud的補(bǔ)充。

          這就像是單體架構(gòu)還將永存?樣,存在是有他的合理性的。詳細(xì)的介紹請(qǐng)觀看直播。


          歡迎關(guān)注個(gè)?公眾號(hào):




          往期回顧

          Go 開源說第七期:Harbor助你玩轉(zhuǎn)云原生

          Go 開源說第五期:MOSN Go語言網(wǎng)絡(luò)代理軟件

          Go 開源說第四期(下):go-zero緩存管理最佳實(shí)踐




          ??  各位Gopher們,注意啦!

          別忘了還有 Gopher China2021 大會(huì)

          還沒報(bào)名的童鞋們趕快抓住最后的機(jī)會(huì)!!!


          點(diǎn)擊這里閱讀原文,即刻報(bào)名~


          瀏覽 77
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩中文字幕视频 | 中文字幕日韩AV | 西西人体444WWW无码男男 | 国产精品www在线观看 | 99在线观看免费视频 |