色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

華為云的Go語言編程的眾多干貨

華為開發者社區 ? 來源:華為開發者社區 ? 作者:華為云云原生 ? 2020-12-17 17:59 ? 次閱讀

近日,國內較權威的Go大會——Gopher China召開,眾多一線互聯網公司的大神們匯聚一堂,深入探討了Go語言并產生了諸多干貨。其中,華為云微服務首席架構師田曉亮老師也受邀參與本次大會,以《華為云的Go語言云原生實戰經驗》為題進行了分享,今天小編整理匯總了田曉亮老師分享中的技術干貨

有理論、有實操、有深度、需細品!

2016年華為成立Cloud BU以來,就引入了Go語言編寫的Kubernetes,Prometheus等CNCF項目,華為云研發團隊也開始用Go語言來構建云服務。不過,當時Go的生態并不完善,所以要自己從頭到尾編寫基礎能力模塊。那么,如何用Go構建云服務并將基礎能力慢慢建立起來,有哪些經驗和方法?且聽我們慢慢道來……

從一個簡單云應用看如何構筑一個云服務

和Eureka一樣,一個簡單的注冊發現服務Service Center可以通過多種手段來增強。

1.靜態與動態信息定義

減少數據信息量,抽出公共部分統一管理,通過靜態信息來劃分實例組。這樣微服務與微服務實例為1對n的映射,將微服務名、版本、數據中心等信息都抽到了公共部分,通過降低冗余度,來減少網絡的開銷,同時也規范化了微服務模型。

2.契約化微服務

上一張圖我們看到微服務靜態信息里面包含了多個Schemas,里面關聯了微服務所關聯的契約文檔,同樣是1對n的映射關系。通過手動上傳或者代碼自動生成文檔上傳,可以在注冊中心中查看微服務文檔,且文檔與微服務版本綁定,不允許更改。

對比客戶端開發團隊等待后端的服務編寫完成后,才開始進行集成開發的方式。高效方式是以文檔為基準,客戶端與服務端同時開發,客戶端通過Mock去除對服務端的依賴。

為何要保證文檔先行?如果文檔不及時審視,那么將會出現非常糟糕的情況。比如不一致的命名規范,定義相似的API,擴展能力差,任何一點都會大大增加研發成本。及早審視并規避十分重要,這就是為何注冊中心加入文檔上傳與查詢能力。

3.服務間依賴管理

調用層級過高將引起定位困難、性能下降的問題,合理的層級是3個服務:a->b->c的調用就可以完成一次調用。彼此互相依賴的兩個服務在功能升級或者變更時要花費更多時間來分析影響,比如ab互相依賴,一個新功能涉及2個都要更改,那怎么一起上線?

簡單的依賴有助于系統測試和分析,這給架構師一個很好的審視方式,可以及時看到微服務間的依賴關系,以及時對架構調整。

4.緩存機制

由于Service Center內部本身是不存數據的,一旦etcd出現網絡故障的時候,就會導致Service Center不可用。所以Service Center引入了異步緩存機制,啟動之初,Service Center會與etcd建立一個長連接,也就是watch。為了防止建立watch時間窗發生變化,又做了一層保護,在watch之前做全量的查詢。運行過程中查詢所得到的資源變化會緩存到Service Center本地,然后進行異步的循環。

總的來說,我們通過了多種手段來提升微服務研發效率,減少網絡開銷,并通過異步緩存提升性能。這是華為云積累的能力,但交付一個云服務遠遠不止交付業務功能這么簡單,還要考慮微服務的安全、韌性、隱私、可運維等能力。

我們剛才看到的只是水面之上的冰山,水面之下還隱藏著大量的基礎能力需要編寫。真的要達成微服務架構模式的愿景,需要繁重的工作量。就像冰山那樣,我們要將通用能力沉淀下去,能夠復用。如果讓各個業務團隊同時照顧冰山上下,各自開發各自的,那結果將是災難性的,企業用人成本極高,下面讓我們展開Service Center的架構看看。

立足Service Center架構,

“冰山下”的基礎能力庫編寫很重要

下面這個組件主要負責微服務的注冊發現,提供Restful API。

它有四個主要的模塊:

服務注冊發現:通過注冊發現完成服務拓撲的感知;

契約發現:每個服務具備一個契約記錄,支持多種格式如Open API,gRPC proto;

RBAC:基于角色的訪問控制,管理員可以管理賬號,將賬號分發給微服務或者不同人員;

服務治理:針對微服務下發治理規則,比如重試,限流,熔斷,路由策略等。

交付一個云服務遠遠不止交付業務功能,而是要去全方面的考慮安全,韌性,隱私,可運維等能力,當然我們將部分的能力可以交給一些中間件來完成,比如網關。然而仍有大量功能需要自己編寫,且可以復用在每個微服務中,這就是基礎能力庫編寫的初衷。

配額管理:云資源按照租戶進行配額管理,租戶所能使用的資源受到嚴格限制

告警:當微服務發生關鍵問題時要直接上報告警系統,而非通過云服務設置閾值等告警策略

安全:加解密證書,密碼

ID生成:ID的生成算法,用于生成微服務ID,實例ID等

多種中間件:調用過程需要被審計,調用鏈追蹤,生成指標監控等

該項目已經開源并捐獻給Apache,項目地址:

https://github.com/apache/servicecomb-service-center

對于這些能力,抽取普通的庫函數也是完全不夠用的,所以要做到如下能力:

可插拔:也就是按需在編譯期引入(受限于Go語言能力),例如配額系統的具體實現在社區是不需要的。

異構系統:也就是一個功能要有多種具體實現,比如審計,公有云存在一套審計系統需要對接,而社區則是本地日志打印。

不同的算法:解密工具、ID生成器……面對不同的交付場景或安全要求,都要通過不同實現來替換算法。比如ID生成可以是snowflake、UUID;加解密算法使用AES或者其他公開算法。

如何通過Go Chassis加速云服務開發?

為了滿足上面提到的需求多樣性,并且讓所有新規劃的組件受益、快速進行開發,我們需要統一的框架和標準來加速開發,這就是華為云用Go語言編寫的開發框架Go Chassis誕生的原因。所以大家看可以看到go chassis的源碼和設計有著service center代碼的影子。

責任編輯:xj

原文標題:掀開華為云的Go語言編程底座!有深度、有點難、需細品

文章出處:【微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3637

    瀏覽量

    93914
  • 華為云
    +關注

    關注

    3

    文章

    2682

    瀏覽量

    17552

原文標題:掀開華為云的Go語言編程底座!有深度、有點難、需細品

文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    gitee 支持的編程語言有哪些

    Gitee(碼)是一個基于 Git 的代碼托管和研發協作平臺,類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發者托管和管理代碼,進行版本控制,以及協作開發。以下是一些
    的頭像 發表于 01-06 09:50 ?111次閱讀

    編程語言的誤區與常見問題

    誤區一:編程語言的選擇 常見問題: 初學者在選擇編程語言時,往往會被市場上的熱門語言所吸引,而忽視了自己的實際需求和興趣。 一些開發者認為某
    的頭像 發表于 11-15 09:35 ?365次閱讀

    在學習go語言的過程踩過的坑

    作為一個5年的phper,這兩年公司和個人都在順應技術趨勢,新項目慢慢從php轉向了go語言,從2021年到現在,筆者手上也先后開發了兩個go項目。在學習go
    的頭像 發表于 11-11 09:22 ?194次閱讀

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?1001次閱讀

    go語言如何解決并發問題

    作為一個后端開發,日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區分,開發速度真的是比
    的頭像 發表于 10-23 13:38 ?164次閱讀
    <b class='flag-5'>go</b><b class='flag-5'>語言</b>如何解決并發問題

    plc編程語言編程相關技巧有哪些

    PLC(可編程邏輯控制器)編程語言及相關編程技巧是工業自動化領域中不可或缺的知識。 一、PLC編程語言
    的頭像 發表于 10-21 16:56 ?421次閱讀

    干貨分享:Air780E怎么連接華為

    ?眾所周知,市面上有很多云平臺,阿里、騰訊、中移OneNET、華為、百度、涂鴉、TLi
    的頭像 發表于 10-15 07:30 ?321次閱讀
    <b class='flag-5'>干貨</b>分享:Air780E怎么連接<b class='flag-5'>華為</b><b class='flag-5'>云</b>?

    三十分鐘入門基礎Go Java小子版

    與Java功能上的對比來闡述Go語言 的基礎語法、面向對象編程、并發與錯誤四個方面。 一、基礎語法 Go語言的基礎語法與常規的
    的頭像 發表于 08-12 14:32 ?769次閱讀
    三十分鐘入門基礎<b class='flag-5'>Go</b> Java小子版

    PLC的編程方式及編程語言

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應用。PLC的編程方式和編程
    的頭像 發表于 06-27 14:08 ?897次閱讀

    華為自研倉頡編程語言首次對外亮相

    在科技界的星辰大海中,華為再次展現了其深邃的探索精神和不懈的創新追求。在近日舉行的華為開發者大會2024上,華為正式發布其自研的倉頡編程語言
    的頭像 發表于 06-24 15:11 ?887次閱讀

    華為自研倉頡編程語言引領全場景智能編程新紀元

    在科技飛速發展的今天,編程語言作為軟件開發的基石,其創新與突破一直備受矚目。近日,華為開發者大會論壇上傳來了一則振奮人心的消息:華為自研的倉頡編程
    的頭像 發表于 06-22 11:30 ?1088次閱讀

    PLC編程語言和C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發表于 06-14 17:11 ?3140次閱讀

    華為開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

    近日,華為正式發布 CodeArts IDE for Python,這是一款內置華為自研 Python 語言服務,提供智能編程、靈活調試能
    的頭像 發表于 05-10 00:27 ?1274次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b>開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

    華為正式發布CodeArts IDE for Python

    近日,華為正式發布CodeArts IDE for Python,這是一款內置華為自主創新的Python語言服務,提供智能編程、靈活調試能
    的頭像 發表于 05-08 14:58 ?535次閱讀

    fpga用的是什么編程語言 fpga用什么語言開發

    fpga用的是什么編程語言 FPGA(現場可編程邏輯門陣列)主要使用的編程語言是硬件描述語言(H
    的頭像 發表于 03-14 17:09 ?3604次閱讀
    主站蜘蛛池模板: 美美哒免费影视8 | 高清视频在线观看SEYEYE | 看全色黄大色大片免费久黄久 | jlzzzjizzzjlzzz亚洲| 国产中文字幕免费观看 | 把手戳进美女尿口里动态图 | 午夜十八岁禁 | 国产久青青青青在线观看 | 久久精品国产久精国产果冻传媒 | 中文字幕高清在线观看 | 嫩草影院未满十八岁禁止入内 | 北岛玲手机在线观看视频观看 | 亚洲视频网站欧美视频网站 | 麻豆文化传媒一区二区 | 美女搜查官被高难度黑人在线播放 | 视频成人永久免费看 | 色影音先锋av资源网 | 樱花之恋动漫免费观看 | 乱码午夜-极品国产内射 | 国拍在线精品视频免费观看 | 囯产精品久久久久久久久免费蜜桃 | 国产免费午夜高清 | 国产跪地吃黄金喝圣水合集 | 国产精品婷婷五月久久久久 | 寂寞夜晚免费观看视频 | 午夜精品国产自在现线拍 | 国产69精品麻豆久久久久 | 范冰冰hdxxxx | 成人毛片免费播放 | 国产高潮国产高潮久久久久久 | 古月娜下面好紧好爽 | 亚洲国产果果在线播放在线 | 羞羞漫画在线播放 | 1819sextub欧美中国| 福利片午夜 | 99国内偷揿国产精品人妻 | 国产亚洲精品久久无亚洲 | 欧美激情视频在线观看一区二区三区 | 2021久久99国产熟女人妻 | 欧美久久综合网 | 最近中文字幕高清中文字幕MV |