日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

華為開發(fā)者社區(qū) ? 來源:華為開發(fā)者社區(qū) ? 作者:華為云云原生 ? 2020-12-17 17:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近日,國內(nèi)較權(quán)威的Go大會——Gopher China召開,眾多一線互聯(lián)網(wǎng)公司的大神們匯聚一堂,深入探討了Go語言并產(chǎn)生了諸多干貨。其中,華為云微服務(wù)首席架構(gòu)師田曉亮老師也受邀參與本次大會,以《華為云的Go語言云原生實(shí)戰(zhàn)經(jīng)驗(yàn)》為題進(jìn)行了分享,今天小編整理匯總了田曉亮老師分享中的技術(shù)干貨。

有理論、有實(shí)操、有深度、需細(xì)品!

2016年華為成立Cloud BU以來,就引入了Go語言編寫的Kubernetes,Prometheus等CNCF項(xiàng)目,華為云研發(fā)團(tuán)隊(duì)也開始用Go語言來構(gòu)建云服務(wù)。不過,當(dāng)時(shí)Go的生態(tài)并不完善,所以要自己從頭到尾編寫基礎(chǔ)能力模塊。那么,如何用Go構(gòu)建云服務(wù)并將基礎(chǔ)能力慢慢建立起來,有哪些經(jīng)驗(yàn)和方法?且聽我們慢慢道來……

從一個簡單云應(yīng)用看如何構(gòu)筑一個云服務(wù)

和Eureka一樣,一個簡單的注冊發(fā)現(xiàn)服務(wù)Service Center可以通過多種手段來增強(qiáng)。

1.靜態(tài)與動態(tài)信息定義

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

2.契約化微服務(wù)

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

對比客戶端開發(fā)團(tuán)隊(duì)等待后端的服務(wù)編寫完成后,才開始進(jìn)行集成開發(fā)的方式。高效方式是以文檔為基準(zhǔn),客戶端與服務(wù)端同時(shí)開發(fā),客戶端通過Mock去除對服務(wù)端的依賴。

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

3.服務(wù)間依賴管理

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

簡單的依賴有助于系統(tǒng)測試和分析,這給架構(gòu)師一個很好的審視方式,可以及時(shí)看到微服務(wù)間的依賴關(guān)系,以及時(shí)對架構(gòu)調(diào)整。

4.緩存機(jī)制

由于Service Center內(nèi)部本身是不存數(shù)據(jù)的,一旦etcd出現(xiàn)網(wǎng)絡(luò)故障的時(shí)候,就會導(dǎo)致Service Center不可用。所以Service Center引入了異步緩存機(jī)制,啟動之初,Service Center會與etcd建立一個長連接,也就是watch。為了防止建立watch時(shí)間窗發(fā)生變化,又做了一層保護(hù),在watch之前做全量的查詢。運(yùn)行過程中查詢所得到的資源變化會緩存到Service Center本地,然后進(jìn)行異步的循環(huán)。

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

我們剛才看到的只是水面之上的冰山,水面之下還隱藏著大量的基礎(chǔ)能力需要編寫。真的要達(dá)成微服務(wù)架構(gòu)模式的愿景,需要繁重的工作量。就像冰山那樣,我們要將通用能力沉淀下去,能夠復(fù)用。如果讓各個業(yè)務(wù)團(tuán)隊(duì)同時(shí)照顧冰山上下,各自開發(fā)各自的,那結(jié)果將是災(zāi)難性的,企業(yè)用人成本極高,下面讓我們展開Service Center的架構(gòu)看看。

立足Service Center架構(gòu),

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

下面這個組件主要負(fù)責(zé)微服務(wù)的注冊發(fā)現(xiàn),提供Restful API。

它有四個主要的模塊:

服務(wù)注冊發(fā)現(xiàn):通過注冊發(fā)現(xiàn)完成服務(wù)拓?fù)涞母兄?/p>

契約發(fā)現(xiàn):每個服務(wù)具備一個契約記錄,支持多種格式如Open API,gRPC proto;

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

服務(wù)治理:針對微服務(wù)下發(fā)治理規(guī)則,比如重試,限流,熔斷,路由策略等。

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

配額管理:云資源按照租戶進(jìn)行配額管理,租戶所能使用的資源受到嚴(yán)格限制

告警:當(dāng)微服務(wù)發(fā)生關(guān)鍵問題時(shí)要直接上報(bào)告警系統(tǒng),而非通過云服務(wù)設(shè)置閾值等告警策略

安全:加解密證書,密碼

ID生成:ID的生成算法,用于生成微服務(wù)ID,實(shí)例ID等

多種中間件:調(diào)用過程需要被審計(jì),調(diào)用鏈追蹤,生成指標(biāo)監(jiān)控等

該項(xiàng)目已經(jīng)開源并捐獻(xiàn)給Apache,項(xiàng)目地址:

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

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

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

異構(gòu)系統(tǒng):也就是一個功能要有多種具體實(shí)現(xiàn),比如審計(jì),公有云存在一套審計(jì)系統(tǒng)需要對接,而社區(qū)則是本地日志打印。

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

如何通過Go Chassis加速云服務(wù)開發(fā)?

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

責(zé)任編輯:xj

原文標(biāo)題:掀開華為云的Go語言編程底座!有深度、有點(diǎn)難、需細(xì)品

文章出處:【微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3724

    瀏覽量

    97458
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2837

    瀏覽量

    19378

原文標(biāo)題:掀開華為云的Go語言編程底座!有深度、有點(diǎn)難、需細(xì)品

文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    為什么單片機(jī)還在用C語言編程?

    說起單片機(jī)我們就會想到C語言,單片機(jī)為什么還在用C語言編程?現(xiàn)在有很多很好用的高級語言,如VC、PYTHON、PHP等等,為什么這些語言不能
    發(fā)表于 11-28 07:37

    C語言編程技巧

    設(shè)計(jì),分層開發(fā)代碼,便于理解和維護(hù)。 ?8、避免使用GOTO語句?:盡管GOTO語句在某些情況下仍然有用,但現(xiàn)代編程更傾向于使用函數(shù)和循環(huán)控制結(jié)構(gòu),以提高代碼的可讀性和維護(hù)性。 ?9、利用C語言的靈活性
    發(fā)表于 11-27 06:46

    豬事都上?溫氏+華為,把AI送進(jìn)養(yǎng)殖場

    華為
    腦極體
    發(fā)布于 :2025年11月14日 15:20:35

    一文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計(jì)算(HPC)和系統(tǒng)級編程場景。
    發(fā)表于 11-07 05:59

    Linux 編程語言盤點(diǎn):從內(nèi)核到AI的全棧選擇

    在工控圈和嵌入式圈里,有一個常年被討論的問題: ?“在 Linux 上,到底該用什么語言編程?” 有人堅(jiān)信:C 才是真正的工業(yè)語言。有人反駁:Python 才是效率王者。還有人推崇 Go
    的頭像 發(fā)表于 11-06 17:05 ?802次閱讀

    中軟國際榮獲華為兩項(xiàng)大獎

    近日,在華為全聯(lián)接大會2025“華為之夜”中,中軟國際榮獲華為“聚力共贏成長獎”,充分彰顯了中軟國際在
    的頭像 發(fā)表于 09-28 14:04 ?1402次閱讀

    【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】2 - 交叉編譯倉頡編程語言程序到開發(fā)板運(yùn)行

    感謝電子發(fā)燒友和合眾恒躍提供的試用機(jī)會。 引言 上一篇介紹了開箱的結(jié)果,接下來測試一下華為倉頡編程語言在開發(fā)板上運(yùn)行的效果。最近對華為倉頡編程
    發(fā)表于 07-16 21:27

    軟通動力聯(lián)合華為舉辦2025動鴻蒙協(xié)同峰會

    近日,軟通動力聯(lián)合華為主辦的“2025動鴻蒙協(xié)同峰會”在昆明順利舉行。期間,生態(tài)伙伴齊聚一堂,共同見證軟通動力與華為“同舟共濟(jì)”戰(zhàn)略合
    的頭像 發(fā)表于 07-11 11:08 ?1800次閱讀

    梯形圖語言補(bǔ)充編程說明書

    電子發(fā)燒友網(wǎng)站提供《梯形圖語言補(bǔ)充編程說明書.pdf》資料免費(fèi)下載
    發(fā)表于 07-09 14:14 ?3次下載

    軟通動力攜手華為發(fā)布AI應(yīng)用創(chuàng)新領(lǐng)航計(jì)劃

    華為開發(fā)者大會 2025期間,作為華為全球戰(zhàn)略合作伙伴,軟通動力受邀出席華為多場重要活動和會議。雙方聯(lián)合與伙伴一同發(fā)起“
    的頭像 發(fā)表于 06-26 10:31 ?1497次閱讀

    華為開發(fā)者大會2025(HDC 2025)亮點(diǎn):華為發(fā)布盤古大模型5.5 宣布新一代昇騰AI服務(wù)上線

    HarmonyOS、昇騰AI服務(wù)、盤古大模型等最新科技創(chuàng)新成果。 在主題演講中,華為常務(wù)董事、華為計(jì)算CEO張平安宣布基于CloudMatrix384 超節(jié)點(diǎn)的新一代昇騰AI
    的頭像 發(fā)表于 06-20 20:19 ?4700次閱讀
    <b class='flag-5'>華為</b>開發(fā)者大會2025(HDC 2025)亮點(diǎn):<b class='flag-5'>華為</b><b class='flag-5'>云</b>發(fā)布盤古大模型5.5 宣布新一代昇騰AI<b class='flag-5'>云</b>服務(wù)上線

    HarmonyOS5服務(wù)技術(shù)分享--函數(shù)預(yù)加載文章整理

    ??嗨,親愛的開發(fā)者朋友們!??? 今天咱們來聊聊如何使用??端一體化方式開發(fā)函數(shù)??,尤其針對華為的預(yù)加載服務(wù)。整個過程會手把手帶你從零開始,涵蓋創(chuàng)建工程、編寫代碼、調(diào)試到部署,幫你輕松掌握
    發(fā)表于 05-22 20:33

    HarmonyOS5服務(wù)技術(shù)分享--ArkTS調(diào)用函數(shù)

    ?【HarmonyOS實(shí)戰(zhàn)指南】手把手教你用ArkTS玩轉(zhuǎn)函數(shù)文件獲取? 大家好呀今天我們來聊聊如何通過HarmonyOS的ArkTS語言實(shí)現(xiàn)函數(shù)文件獲取功能。整個過程就像搭積木一樣有趣,保證
    發(fā)表于 05-22 18:22

    HarmonyOS5服務(wù)技術(shù)分享--函數(shù)創(chuàng)建配置指南

    大家好!今天咱們來一起探索如何在華為HarmonyOS的AGC函數(shù)服務(wù)中創(chuàng)建和配置函數(shù),手把手教你用HTTP觸發(fā)器玩轉(zhuǎn)函數(shù)。無論你是剛?cè)腴T還是想優(yōu)化現(xiàn)有功能,這篇指南都會給你清晰的指引,咱們直接
    發(fā)表于 05-22 17:08

    博泰車聯(lián)網(wǎng)斬獲華為“2024年上海創(chuàng)新標(biāo)桿獎”

    近日,在華為生態(tài)大會上,博泰車聯(lián)網(wǎng)憑借與華為合作的車聯(lián)網(wǎng)平臺項(xiàng)目,成功斬獲“上海創(chuàng)新標(biāo)桿
    的頭像 發(fā)表于 05-08 10:17 ?1047次閱讀
    安徽省| 余庆县| 怀安县| 乌苏市| 肃南| 绥芬河市| 寻乌县| 荣昌县| 涿州市| 汕头市| 本溪市| 鱼台县| 乐昌市| 介休市| 怀集县| 黑河市| 曲阜市| 常宁市| 西充县| 黄骅市| 凌源市| 师宗县| 五大连池市| 锦州市| 米泉市| 民勤县| 太白县| 平定县| 宣化县| 隆化县| 岳池县| 吴忠市| 江西省| 建平县| 柳州市| 梓潼县| 周口市| 彰武县| 阿克| 榆树市| 伊宁县|