微服務(wù)架構(gòu)核心

timg.jpg
什么是微服務(wù)架構(gòu)
  • 說(shuō)到微服務(wù)必須提到的兩個(gè)人馬丁福勒(Martin Flower)和克羅夫特(Adrian Cockcroft),馬丁福勒在2014年在他的博客上寫過(guò)一篇文章,介紹微服務(wù)架構(gòu)
  • 微服務(wù)架構(gòu)的特點(diǎn)
    • 一組小的服務(wù)
      • 微服務(wù)架構(gòu)主張
    • 獨(dú)立的進(jìn)程
    • 輕量級(jí)通信
    • 基于業(yè)務(wù)能力
    • 獨(dú)立部署
    • 無(wú)集中式管理
架構(gòu)師如何權(quán)衡微服務(wù)的利弊
  • 微服務(wù)利
    • 強(qiáng)模塊化邊界
    • 可獨(dú)立部署
    • 技術(shù)多樣性
  • 微服務(wù)弊
    • 分布式復(fù)雜性
    • 最終一致性
    • 運(yùn)維復(fù)雜性
    • 測(cè)試復(fù)雜性
康威法則和微服務(wù)給架構(gòu)師怎樣的啟示康威法則:是一個(gè)叫康威的人在1967年提出來(lái)的;設(shè)計(jì)系統(tǒng)的組織掺涛,其產(chǎn)生的設(shè)計(jì)等同于組織之內(nèi)筑悴、組織之間的溝通結(jié)構(gòu)。
  • 康威法則和微服務(wù)的關(guān)系
    • 一個(gè)公司隨著業(yè)務(wù)增加項(xiàng)目變大,需要多個(gè)團(tuán)隊(duì)協(xié)同工作,這時(shí)候如果項(xiàng)目還是一整塊的,那么項(xiàng)目和團(tuán)隊(duì)就是不匹配.多個(gè)團(tuán)多很多人在協(xié)同工作的時(shí)候溝通成本變高,協(xié)同效率變低;當(dāng)某個(gè)團(tuán)隊(duì)在自己的業(yè)務(wù)部分有改動(dòng)時(shí)需要其它團(tuán)隊(duì)配合,溝通成本是較高的,中間甚至?xí)霈F(xiàn)摩擦
    • 微服務(wù)解決了這個(gè)問(wèn)題,我們把單塊的應(yīng)用拆解出來(lái),拆分成多個(gè)微服務(wù),每個(gè)團(tuán)隊(duì)負(fù)責(zé)維護(hù)自己的服務(wù),相互之間互不干擾;這樣某個(gè)團(tuán)隊(duì)或個(gè)人負(fù)責(zé)的部分交付的時(shí)候變得更加方便,不需要其它團(tuán)隊(duì)協(xié)同.這樣多團(tuán)隊(duì)和多服務(wù)之間的聯(lián)系變得清晰緊密,它符合了康威法則,整體的研發(fā)效率和業(yè)務(wù)支持變得更高效
企業(yè)應(yīng)該在什么時(shí)候開(kāi)始考慮引入微服務(wù)
  • 企業(yè)應(yīng)該在什么時(shí)間段引入微服務(wù)
    • 從生產(chǎn)力和項(xiàng)目復(fù)雜性來(lái)考慮,在開(kāi)始項(xiàng)目的時(shí)候業(yè)務(wù)復(fù)雜性不高,用戶量也不大,這時(shí)候我們應(yīng)該優(yōu)先考慮單塊應(yīng)用,不推薦微服務(wù),因?yàn)槲⒎?wù)是有基礎(chǔ)設(shè)施要求的,需要前期的投資,團(tuán)隊(duì)不大生成力也會(huì)降低;而隨著項(xiàng)目越來(lái)越成功,用戶量的增加,系統(tǒng)的復(fù)雜性也變高,這時(shí)候團(tuán)隊(duì)變得越來(lái)越大,就會(huì)出現(xiàn)團(tuán)隊(duì)規(guī)模與項(xiàng)目不匹配的情況,違反康威法則,生產(chǎn)力隨著系統(tǒng)復(fù)雜性逐漸下降,這時(shí)候就該考慮引入微服務(wù)
  • 項(xiàng)目架構(gòu)設(shè)計(jì)一開(kāi)始就設(shè)計(jì)微服務(wù),還是做單塊應(yīng)用
    • 單塊優(yōu)先,項(xiàng)目一開(kāi)始,你對(duì)項(xiàng)目問(wèn)題不是很理解,跟難把控怎么來(lái)拆分服務(wù),劃分服務(wù)的邊界,而且還未被客戶驗(yàn)證,可能會(huì)失敗;我們先做單塊應(yīng)用,隨著業(yè)務(wù)不斷擴(kuò)展,團(tuán)隊(duì)規(guī)模不斷擴(kuò)展,你的項(xiàng)目業(yè)務(wù)架構(gòu)越來(lái)越清晰,單塊應(yīng)用已經(jīng)無(wú)法滿足需求,研發(fā)效率開(kāi)始下降,達(dá)到一個(gè)臨界點(diǎn),發(fā)現(xiàn)我們需要把某些個(gè)業(yè)務(wù)模塊拆分出來(lái),這樣就慢慢變成一個(gè)微服務(wù)架構(gòu)
  • 好的架構(gòu)是設(shè)計(jì)出來(lái)的還是演化出來(lái)的
    • 系統(tǒng)架構(gòu)的目標(biāo)是解決利益相關(guān)者的關(guān)注點(diǎn)煤惩。架構(gòu)系統(tǒng)前架構(gòu)師的首要任務(wù)是盡最大可能找出所有利益相關(guān)者;架構(gòu)師常犯的錯(cuò)誤就是漏掉利益相關(guān)者,溝通不充分,都會(huì)造成架構(gòu)有欠缺,不能滿足相關(guān)利益者的需求师倔。架構(gòu)是對(duì)一個(gè)系統(tǒng)起關(guān)鍵作用的設(shè)計(jì)決策毁涉,架構(gòu)定系統(tǒng)就基本成型了联贩。進(jìn)一步說(shuō)愿险,架構(gòu)的目標(biāo)是用于管理復(fù)雜性、易變性和不確定性漾脂,以確保在長(zhǎng)期的系統(tǒng)演化過(guò)程中假颇,一部分的架構(gòu)變化不會(huì)對(duì)其它部分產(chǎn)生不必要的負(fù)面影響。這樣做可以確保業(yè)務(wù)和研發(fā)效率的敏捷骨稿,讓應(yīng)用的易變部分能夠頻繁的變化笨鸡,對(duì)應(yīng)于其它部分的影響盡可能的少。業(yè)務(wù)架構(gòu)是生產(chǎn)力坦冠,應(yīng)用架構(gòu)是生產(chǎn)關(guān)系形耗,技術(shù)架構(gòu)是生產(chǎn)工具。業(yè)務(wù)架構(gòu)決定應(yīng)用架構(gòu)辙浑,應(yīng)用架構(gòu)需要適配業(yè)務(wù)架構(gòu)激涤,并隨著業(yè)務(wù)架構(gòu)不斷進(jìn)化,同時(shí)應(yīng)用架構(gòu)依托技術(shù)架構(gòu)最終落地判呕。
    • 好架構(gòu)是進(jìn)化來(lái)的不是設(shè)計(jì)來(lái)的倦踢;我們?cè)诿總€(gè)階段,找到對(duì)應(yīng)該階段網(wǎng)站架構(gòu)所面臨的問(wèn)題侠草,然后在不斷解決這些問(wèn)題的過(guò)程中辱挥,整個(gè)戰(zhàn)略的架構(gòu)就是在不斷的演進(jìn)了。網(wǎng)站在不同的階段遇到的問(wèn)題不一樣边涕,而解決這些問(wèn)題使用的技術(shù)也不一樣晤碘,流量小的時(shí)候,我們主要目的是提高開(kāi)發(fā)效率功蜓,在早期要引入 ORM园爷,DAO 這些技術(shù)。隨著流量變大式撼,使用動(dòng)靜分離童社、讀寫分離、主從同步端衰、垂直拆分叠洗、CDN、MVC 等方式不斷提升網(wǎng)站的穩(wěn)定性旅东。面對(duì)更大的流量時(shí),通過(guò)垂直拆分十艾、服務(wù)化抵代、反向代理、開(kāi)發(fā)框架(站點(diǎn)/服務(wù))等等忘嫉,不斷提升高可用荤牍。
    • 一個(gè)優(yōu)秀的架構(gòu)不可能一下就設(shè)計(jì)出來(lái)案腺,是需要不斷進(jìn)化的,當(dāng)然精心的設(shè)計(jì)也是必不可少的康吵;好的架構(gòu)需要經(jīng)過(guò)這么幾個(gè)過(guò)程:精心設(shè)計(jì) – 進(jìn)化 – 進(jìn)化 …… – 被推翻 – 再設(shè)計(jì)劈榨,是這樣循環(huán)往復(fù)的過(guò)程。最開(kāi)始的架構(gòu)晦嵌,肯定是從無(wú)到有同辣,根據(jù)產(chǎn)品的需求和當(dāng)時(shí)業(yè)務(wù)的需求設(shè)計(jì)出來(lái)的。一個(gè)系統(tǒng)的演化惭载,一般會(huì)經(jīng)過(guò)這樣的階段:第一個(gè)系統(tǒng)肯定是under-engineer的旱函,從無(wú)到有被設(shè)計(jì)出來(lái)后,肯定是不完善的描滔;第二個(gè)版本棒妨,一般是over-engineer的,因?yàn)殡S著之前那個(gè)版本的使用含长,積累了一定量需求后券腔,會(huì)發(fā)現(xiàn)想要增加很多內(nèi)容在上面;到第三個(gè)版本拘泞,應(yīng)該是最恰當(dāng)?shù)穆簦瑴p去了一些沒(méi)必要的設(shè)計(jì)之后,更合適田弥。但當(dāng)?shù)搅四骋粋€(gè)時(shí)間點(diǎn)涛酗,發(fā)現(xiàn)現(xiàn)有的系統(tǒng)架構(gòu)已經(jīng)沒(méi)有辦法再維持下去,跟不上需求增長(zhǎng)時(shí)偷厦,就需要推倒再重新設(shè)計(jì)商叹。
什么樣的組織架構(gòu)更適合微服務(wù)
  • 傳統(tǒng)技術(shù)團(tuán)隊(duì)
    • 產(chǎn)品管理專家團(tuán)隊(duì)、用戶體驗(yàn)專家團(tuán)隊(duì)只泼、研發(fā)專家團(tuán)隊(duì)剖笙、測(cè)試專家團(tuán)隊(duì)、DBA專家團(tuán)隊(duì)请唱、運(yùn)維專家團(tuán)隊(duì)
  • 新型微服務(wù)團(tuán)隊(duì)
    • 跨職能微服務(wù)團(tuán)隊(duì)-API-平臺(tái)團(tuán)隊(duì)
      • 微服務(wù)整個(gè)團(tuán)隊(duì)圍繞產(chǎn)品做決定弥咪,團(tuán)隊(duì)內(nèi)部的人同時(shí)負(fù)責(zé):架構(gòu)、設(shè)計(jì)十绑、開(kāi)發(fā)聚至、評(píng)審、測(cè)試本橙、發(fā)布扳躬、運(yùn)行、支持,形成閉環(huán)贷币;團(tuán)隊(duì)規(guī)模一般十幾個(gè)人击胜;誰(shuí)開(kāi)發(fā)誰(shuí)構(gòu)建誰(shuí)運(yùn)行發(fā)布
如何理解阿里巴巴提出的微服務(wù)中臺(tái)戰(zhàn)略
  • 大中臺(tái),小前臺(tái):馬云在2015年參觀完歐洲一家技術(shù)公司有此感悟役纹,提出了中臺(tái)戰(zhàn)略
  • 互聯(lián)網(wǎng)公司組織架構(gòu)
    • Iaas云平臺(tái)(基礎(chǔ)設(shè)施及服務(wù))
      • 計(jì)算偶摔、存儲(chǔ)、網(wǎng)絡(luò)促脉、監(jiān)控辰斋、安全、IDC
    • Pass云平臺(tái)
      • 大數(shù)據(jù)嘲叔、AI亡呵;應(yīng)用監(jiān)控、持續(xù)交付硫戈、服務(wù)框架锰什、資源調(diào)度、后臺(tái)服務(wù)
    • 核心業(yè)務(wù)層(領(lǐng)域核心服務(wù))
    • 應(yīng)用層
      • 主站丁逝、app汁胆;第三方接入渠道
  • 技術(shù)中臺(tái)和業(yè)務(wù)中臺(tái)是大中臺(tái),當(dāng)中臺(tái)比較完善,它對(duì)上層應(yīng)用的支撐能力就越強(qiáng),使前臺(tái)更加靈活,快速響應(yīng)市場(chǎng)需求
如何給出一個(gè)清晰簡(jiǎn)潔的微服務(wù)分層方式
  • 基礎(chǔ)服務(wù):別名-核心領(lǐng)域服務(wù)\公共服務(wù)\中間服務(wù)
  • 聚合服務(wù):別名-適配服務(wù)\邊界服務(wù)——>webBFF、MobileBFF霜幼、publicBFF
微服務(wù)總體技術(shù)架構(gòu)體系是怎樣設(shè)計(jì)的
  • 接入層:外部+內(nèi)部
  • 網(wǎng)關(guān)層:內(nèi)部網(wǎng)關(guān)嫩码、H5網(wǎng)關(guān)、無(wú)線網(wǎng)關(guān)罪既、第三方網(wǎng)關(guān)铸题、平臺(tái)開(kāi)放網(wǎng)關(guān)
    • 網(wǎng)關(guān)層在微服務(wù)有重要地位,它主要做反向路由琢感、限流熔斷丢间、安全...
  • 業(yè)務(wù)服務(wù)層:聚合層、基礎(chǔ)層
  • 支撐服務(wù):注冊(cè)發(fā)現(xiàn)驹针、集中配置烘挫、容錯(cuò)限流、認(rèn)證授權(quán)柬甥、日志集合饮六、監(jiān)控警告、后臺(tái)服務(wù)
  • 平臺(tái)服務(wù):發(fā)布系統(tǒng)苛蒲、集群資源調(diào)度卤橄、鏡像治理、資源治理撤防、IAM
  • 基礎(chǔ)設(shè)施:計(jì)算虽风、網(wǎng)絡(luò)棒口、存儲(chǔ)寄月、NOC監(jiān)控辜膝、安全、IDC
  • 縱向能力:微服務(wù)開(kāi)發(fā)框架漾肮、持續(xù)交付流水線厂抖、端到端的工具鏈、工程實(shí)踐與規(guī)范
微服務(wù)最經(jīng)典的三種服務(wù)發(fā)現(xiàn)機(jī)制
  • 在一個(gè)分布式架構(gòu)中有很多服務(wù)克懊,這些服務(wù)中有生成者有消費(fèi)者忱辅,這些消費(fèi)者如何去發(fā)現(xiàn)生成者,這就需要微服務(wù)的服務(wù)發(fā)現(xiàn)
  • 傳統(tǒng)Load Balancer做服務(wù)發(fā)現(xiàn)和負(fù)載均衡
    • DNS->Consumer->Load Balancer->Service provider
    • 申請(qǐng)DNS域名谭溉、配負(fù)載均衡器墙懂、域名指向后臺(tái)服務(wù)
  • 進(jìn)程內(nèi)Load模式發(fā)現(xiàn)服務(wù)
    • service Register->Consumer(Load Balancer)->Service Provider(定期發(fā)送心跳)->service Register:性能好,升級(jí)成本高
  • 主心獨(dú)立Load模式
    • 和進(jìn)程內(nèi)load模式類似扮念,只不過(guò)是在每臺(tái)消費(fèi)者主機(jī)上部署Load Balancer损搬;應(yīng)用成本較高
  • 服務(wù)網(wǎng)格:服務(wù)網(wǎng)格是用于控制和監(jiān)控微服務(wù)應(yīng)用程序中的內(nèi)部服務(wù)到服務(wù)流量的軟件基礎(chǔ)結(jié)構(gòu)層。它通常采取與應(yīng)用程序代碼一起部署柜与,作為網(wǎng)絡(luò)代理的 "數(shù)據(jù)平面" 和與這些代理交互的 "控制平面" 的形式巧勤。在此模型中,服務(wù)網(wǎng)格對(duì)于開(kāi)發(fā)人員 (服務(wù)所有者) 是透明的弄匕, 而運(yùn)維人員 (平臺(tái)工程師) 則被授予一套新的工具颅悉,以確保可靠性迁匠、安全性和可見(jiàn)性剩瓶。
微服務(wù)api服務(wù)網(wǎng)關(guān)原理與開(kāi)源網(wǎng)關(guān)
  • 網(wǎng)關(guān)就相當(dāng)于一個(gè)門衛(wèi),外部不同的業(yè)務(wù)調(diào)用不同的微服務(wù)功能時(shí)城丧,我們不希望外部看到微服務(wù)細(xì)節(jié)延曙,通過(guò)網(wǎng)關(guān)使外界看起來(lái)是一個(gè)統(tǒng)一的服務(wù)
  • 外部接入設(shè)備->負(fù)載均衡器->網(wǎng)關(guān)層->微服務(wù)
    • 網(wǎng)關(guān)功能
      • 反向路由:將外部請(qǐng)求轉(zhuǎn)換為內(nèi)部的對(duì)應(yīng)微服務(wù)調(diào)用
      • 認(rèn)證安全:對(duì)請(qǐng)求進(jìn)來(lái)的信息進(jìn)行安全認(rèn)證
      • 限流熔斷:有突發(fā)的大流量沖進(jìn)來(lái)時(shí)限流熔斷避免服務(wù)器承受不了而癱瘓
      • 日志監(jiān)控:對(duì)訪問(wèn)進(jìn)行記錄保存起來(lái),可以進(jìn)行分析監(jiān)控
  • 開(kāi)源網(wǎng)關(guān)zuul
    • zuul網(wǎng)關(guān)核心sevlet
    • zuul網(wǎng)關(guān)核心組件zuul Runner:Zuul Runner管理內(nèi)部過(guò)濾器
      • Pre Routing filters(前置路由過(guò)濾器):這里可以加自己定制的過(guò)濾器芙贫,通過(guò)Http Request調(diào)用
      • Routing Filters(路由過(guò)濾器):調(diào)用后臺(tái)微服務(wù)
      • Post Routing Filters(后置路由過(guò)濾器):這里設(shè)置error filters搂鲫,任何環(huán)節(jié)報(bào)錯(cuò),拋給錯(cuò)誤過(guò)濾器處理磺平;通過(guò)HttpResponse返回魂仍,可以做統(tǒng)計(jì)監(jiān)控的功能
    • zuul中的過(guò)濾器是動(dòng)態(tài)插拔的,有靈活的過(guò)濾器上傳加載機(jī)制拣挪,zuul網(wǎng)關(guān)通過(guò)Request Context共享信息
      • 開(kāi)發(fā)完過(guò)濾器可以上傳到過(guò)濾器存儲(chǔ)數(shù)據(jù)庫(kù)中擦酌,后臺(tái)有一個(gè)過(guò)濾器Poller,定期從數(shù)據(jù)庫(kù)pull過(guò)濾器上傳到過(guò)濾器目錄當(dāng)中菠劝,網(wǎng)關(guān)上的過(guò)濾器管理器定期掃目錄赊舶,有新的過(guò)濾器會(huì)加載到網(wǎng)關(guān)中
跟Netfix學(xué)習(xí)微服務(wù)路由發(fā)現(xiàn)體系
  • 服務(wù)注冊(cè)中心Eureka:注冊(cè)中心,進(jìn)行服務(wù)治理,哪些服務(wù)可以隨便調(diào)用笼平,哪些服務(wù)通過(guò)網(wǎng)關(guān)訪問(wèn)
    • zuul核心組件:服務(wù)發(fā)現(xiàn)
    • 基礎(chǔ)服務(wù):服務(wù)注冊(cè)
    • 聚合服務(wù):服務(wù)注冊(cè)园骆、服務(wù)發(fā)現(xiàn)
集中式配置中心的作用和原理是什么
  • 為什么需要引入配置中心
    • 開(kāi)發(fā)人員一般都把配置放在配置文件中,各自有各自的做法寓调,這樣格式不標(biāo)準(zhǔn)锌唾,不統(tǒng)一,有很多隱患夺英;上線后修改不方便晌涕;沒(méi)有完整的配置系統(tǒng),誰(shuí)修改了配置痛悯,無(wú)法追溯余黎。
  • 哪些可以在配置中心進(jìn)行配置
    • 連接字符串-消息隊(duì)列連接字符串-緩存連接字符串、動(dòng)態(tài)調(diào)整參數(shù)-客戶端超時(shí)設(shè)置-限流閾值载萌、業(yè)務(wù)開(kāi)關(guān)-某服務(wù)只對(duì)某個(gè)地區(qū)生效-某共能只在大促時(shí)開(kāi)放
  • 配置中心原理
    • 用戶通過(guò)一個(gè)界面修改配置惧财,不同的微服務(wù)可以從配置中心更新配置(手動(dòng)拉或自動(dòng)推)
  • 協(xié)程Apollo配置中心
微服務(wù)通訊方式RPC vs REST
PRC vs REST
耦合性 強(qiáng)耦合 松散耦合
消息協(xié)議 二進(jìn)制thrift、Protobuf炒考、auro 文本XML可缚、JSON
通訊協(xié)議 TCP HTTP/HTTP2
性能 一般低于RPC
接口契約IDL thrift、Protobuf斋枢、IDL Swagger
客戶端 強(qiáng)類型客戶端帘靡,一般自動(dòng)生成,多語(yǔ)言 一般HTTP客戶端可訪問(wèn)瓤帚,可自動(dòng)生成強(qiáng)類型客戶端描姚,多語(yǔ)言
案例 Dubbo、motan戈次、Tars轩勘、grpc、thrift Jax-YS怯邪,drop wizard
開(kāi)發(fā)者友好 k客戶端比較方便绊寻,但二進(jìn)制消息不可讀 w文本消息,開(kāi)發(fā)者可讀悬秉,瀏覽器可訪問(wèn)
對(duì)外開(kāi)放 d對(duì)外一般需要轉(zhuǎn)換成REST/文本協(xié)議 z直接可以對(duì)外開(kāi)放
微服務(wù)框架需要考慮哪些治理環(huán)節(jié)
  • 后臺(tái)服務(wù)集成:數(shù)據(jù)訪問(wèn)服務(wù)澄步、緩存服務(wù)、消息服務(wù)
  • 服務(wù)注冊(cè)發(fā)現(xiàn):消費(fèi)者如何發(fā)現(xiàn)服務(wù)
  • 負(fù)載軟路由:應(yīng)對(duì)大流量的負(fù)載均衡和泌,灰度發(fā)布需要軟路由能力
  • 日志:日志對(duì)于后期排錯(cuò)找問(wèn)題很重要
  • Metrics:對(duì)服務(wù)的調(diào)用量村缸、延遲、出錯(cuò)數(shù)進(jìn)行監(jiān)控
  • 調(diào)用鏈埋點(diǎn):調(diào)用鏈監(jiān)控幫助開(kāi)發(fā)人員快速定位問(wèn)題
  • 限流熔斷:避免某個(gè)服務(wù)出現(xiàn)故障或延遲時(shí)整個(gè)系統(tǒng)的癱瘓
  • 安全訪問(wèn)控制:有些服務(wù)涉及敏感信息的需要有安全策略武氓,黑名單梯皿、訪問(wèn)控制策略來(lái)限制對(duì)這些服務(wù)的訪問(wèn)
  • REST/PRC:好的框架同時(shí)支持兩種通訊方式的調(diào)用仇箱,不同場(chǎng)景使用不同通訊方式
  • 序列化XML/JSON/二進(jìn)制:靈活配置消息序列化協(xié)議
  • 代碼生成:大規(guī)模開(kāi)發(fā)時(shí),推崇契約驅(qū)動(dòng)的開(kāi)發(fā)方法东羹,先定義契約剂桥,然后代碼生成自動(dòng)生成服務(wù)器端和客戶端,生成的代碼比較規(guī)整
  • 統(tǒng)一異常處理:異常處理的統(tǒng)一標(biāo)準(zhǔn)化
  • 文檔:好的文檔體系幫助開(kāi)發(fā)人員更好的利用微服務(wù)
  • 配置集成:配置中心靈活調(diào)整配置
微服務(wù)監(jiān)控系統(tǒng)分層和監(jiān)控架構(gòu)
  • 端用戶體驗(yàn)監(jiān)控
    • 性能百姓、返回碼渊额、城市地區(qū)况木、運(yùn)營(yíng)商垒拢、版本系統(tǒng)等
  • 業(yè)務(wù)監(jiān)控
    • 核心指標(biāo)監(jiān)控、登錄注冊(cè)火惊、下單求类、支付等
  • 應(yīng)用監(jiān)控
    • url、service屹耐、sql尸疆、cache可用率、響應(yīng)時(shí)間惶岭、qps等
  • 系統(tǒng)監(jiān)控
    • 物理機(jī)寿弱、虛擬機(jī)、os:CPU按灶、memory症革、network、disk等
  • 基礎(chǔ)設(shè)施監(jiān)控
    • 網(wǎng)絡(luò)鸯旁、交換機(jī)噪矛、網(wǎng)絡(luò)流量、丟包铺罢、錯(cuò)包艇挨、連接數(shù)等
  • 監(jiān)控哪些方面
    • 日志監(jiān)控、Metrics監(jiān)控韭赘、健康檢查缩滨、調(diào)用鏈監(jiān)控、告警系統(tǒng)
微服務(wù)的調(diào)用鏈監(jiān)控該如何選型
cat zipkin pinpoint
調(diào)用鏈可視化
報(bào)表 非常豐富
ServerMap 簡(jiǎn)單依賴圖 簡(jiǎn)單
埋點(diǎn)方式 侵入 侵入 不侵入字節(jié)碼增強(qiáng)
heartbeat支持 無(wú)
Metric支持 無(wú) 無(wú)
Java/net客戶端支持 只有Java
Dashboard中文支持 無(wú) 無(wú)
社區(qū)支持 好泉瞻,文檔較豐富脉漏,作者在協(xié)程點(diǎn)評(píng) 好,文檔一般瓦灶,暫無(wú)中文社區(qū) 一般 文檔缺鸠删,無(wú)中文社區(qū)
國(guó)內(nèi)案例 協(xié)程點(diǎn)評(píng),陸金所 京東阿里不開(kāi)源 暫無(wú)
源頭祖先 Ebay CAL Google Depper Goggle Depper
微服務(wù)的容錯(cuò)限流是如何工作的

Hystrix的熔斷:

  • 分布式系統(tǒng)中常見(jiàn)的容錯(cuò)模式:熔斷贼陶、隔離刃泡、限流巧娱、降級(jí)
  • Hystrix內(nèi)部設(shè)計(jì)和調(diào)用流程:
    • 調(diào)用請(qǐng)求:同步調(diào)用、異步調(diào)用烘贴、響應(yīng)式調(diào)用
    • 電路判斷:如果電路是打開(kāi)的(不通了)禁添,直接導(dǎo)入->getFallback(),如果提供了降級(jí)函數(shù)直接調(diào)用->返回,也可能拋出異常桨踪,這是短路流程老翘;如果電路是閉合的(通的,沒(méi)有熔斷)->看線程是否ok锻离,隊(duì)列資源是否滿了(是會(huì)去降級(jí)請(qǐng)求)->運(yùn)行調(diào)用(運(yùn)行超時(shí)铺峭,去降級(jí))->調(diào)用成功(失敗去調(diào)用降級(jí))->獲取正確的響應(yīng)->返回到請(qǐng)求方;運(yùn)行是否成功汽纠,調(diào)用是否超時(shí)都會(huì)以message形式反饋給內(nèi)部計(jì)算電路健康的組件卫键,反饋給內(nèi)部熔斷器,從而決定下次電路的開(kāi)啟關(guān)閉
Docker容器部署技術(shù)&持續(xù)交付流水線
  • docker容器技術(shù)解決的問(wèn)題和帶來(lái)的好處
    • 環(huán)境一致性:容器技術(shù)把依賴包全部打包在容器鏡像中虱朵,不存在依賴不一致問(wèn)題
    • 鏡像部署:它把構(gòu)建和發(fā)布隔離莉炉,提供抽象發(fā)布機(jī)制;鏡像當(dāng)中有操作系統(tǒng)碴犬、依賴包絮宁、微服務(wù)應(yīng)用程序
  • 交付流水線:Jenkins-鏡像治理中心(測(cè)試環(huán)境-UAT環(huán)境-生成環(huán)境);在生產(chǎn)環(huán)境發(fā)布比較嚴(yán)格,可以采用藍(lán)綠發(fā)布和灰度發(fā)布機(jī)制
    • 藍(lán)綠部署原理:我們有藍(lán)色版本和綠色版本服协,依賴于路由器(網(wǎng)關(guān)或內(nèi)部服務(wù)發(fā)現(xiàn)系統(tǒng))绍昂;當(dāng)升級(jí)時(shí)切換到綠色版本;
    • 灰度發(fā)布就是我們不一下子把流量全部切換到綠色版本蚯涮,而是先切換10%看運(yùn)行情況治专,有問(wèn)題切換回來(lái),沒(méi)問(wèn)題再切50%遭顶,然后逐步切換
容器集群調(diào)度和基于容器的發(fā)布體系
  • 容器資源調(diào)度平臺(tái)Mesos:他會(huì)幫你管理,這個(gè)計(jì)算機(jī)有足夠多計(jì)算資源和內(nèi)存資源,看上去是個(gè)超級(jí)的操作系統(tǒng),管理下面张峰;master負(fù)責(zé)管理可以運(yùn)行容器物理機(jī)虛擬機(jī)的slave機(jī)器,上面有zookeeper來(lái)幫助他,有個(gè)leader來(lái)管理slave,leader出問(wèn)題,zookeeper會(huì)選舉一個(gè)slave是不同的機(jī)器,把自己的使用情況,內(nèi)存情況等等匯報(bào)給master,master把這些信息報(bào)告Framework,master只管資源的調(diào)度
  • 容器發(fā)布體系:
    微信截圖_20191008074041.png
微信圖片_20191007223334.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棒旗,一起剝皮案震驚了整個(gè)濱河市喘批,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铣揉,老刑警劉巖饶深,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逛拱,居然都是意外死亡敌厘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門朽合,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俱两,“玉大人饱狂,你說(shuō)我怎么就攤上這事∠懿剩” “怎么了休讳?”我有些...
    開(kāi)封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)尿孔。 經(jīng)常有香客問(wèn)我俊柔,道長(zhǎng),這世上最難降的妖魔是什么活合? 我笑而不...
    開(kāi)封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任雏婶,我火速辦了婚禮,結(jié)果婚禮上芜辕,老公的妹妹穿的比我還像新娘尚骄。我一直安慰自己,他們只是感情好侵续,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著憨闰,像睡著了一般状蜗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹉动,一...
    開(kāi)封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天轧坎,我揣著相機(jī)與錄音,去河邊找鬼泽示。 笑死缸血,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的械筛。 我是一名探鬼主播捎泻,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼埋哟!你這毒婦竟也來(lái)了笆豁?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赤赊,失蹤者是張志新(化名)和其女友劉穎闯狱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抛计,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哄孤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吹截。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘦陈。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡朦肘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出双饥,到底是詐尸還是另有隱情媒抠,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布咏花,位于F島的核電站趴生,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏昏翰。R本人自食惡果不足惜苍匆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棚菊。 院中可真熱鬧浸踩,春花似錦、人聲如沸统求。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)码邻。三九已至折剃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間像屋,已是汗流浹背怕犁。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留己莺,地道東北人奏甫。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像凌受,于是被迫代替她去往敵國(guó)和親阵子。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 2018年11月3日星期六天氣晴 今天是周末兒子不用上學(xué)胁艰,我和兒子都睡到了自然醒款筑,早飯后兒子去了武館練武,我...
    宋胤鋆媽媽閱讀 136評(píng)論 0 0
  • “易促寶”專題講解(11):電商該如何利用微博引流? 潛伏網(wǎng)絡(luò)出真知解虱,實(shí)踐運(yùn)用是本事攘须!大家好,我是易促寶,分享是我...
    86aaeab39ea2閱讀 459評(píng)論 0 0
  • 枯萎映挂,是植物的死亡,還是憂傷滑负? 一. 晨背著包捞魁,登上了上山的路至会。山的名字,山下的村民有兩個(gè)答案: “忘了谱俭》罴” “忘...
    本初的小說(shuō)和酒閱讀 505評(píng)論 1 1
  • 大腳趾跟球踩地,啟動(dòng)腿內(nèi)側(cè)力量昆著,足弓向上提向腿內(nèi)側(cè)县貌,隨后力量向小腳趾分散,力量分散均勻后凑懂,腳趾放松最大面積平鋪地面...
    徹如閱讀 559評(píng)論 0 0