掌握高并發(fā)、高可用架構
第四章 微服務
本章介紹微服務的概念、為何要引入微服務、微服務會引發(fā)的問題,以及流行的微服務架構等。
慶云ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
第一節(jié) 微服務基礎
微服務
1. 微服務的定義
Martin Flower在2014年的一篇論文《MicroServices》中提出的,在某種程度上微服務是面向服務的架構SOA繼續(xù)發(fā)展的下一步,它是一些協(xié)同工作的小而自治的服務,很小,專注于做好一件事,具有自治性,其主要特點是:
- 與組織結(jié)構相匹配,每個服務可按照業(yè)務、團隊進行劃分,使小的團隊在小的代碼庫上高效工作
- 可組合性,易于重用已有功能
- 技術異構性,每個服務不限制開發(fā)語言,不限制使用的數(shù)據(jù)庫,服務之間通過輕量級API調(diào)用
- 簡化部署,每個服務獨立部署,服務之間互不影響,管理自動化
- 彈性擴展,可針對用戶訪問流量大的服務單獨擴展,從而節(jié)約資源
- 對可替代性的優(yōu)化,微服務中的多個相似服務,重寫或移除一個或多個服務的阻礙會很小
2. 引入微服務會面臨的挑戰(zhàn)
雖然微服務看上去很美好,但引入微服務需要考慮以下幾個問題
- 微服務強調(diào)服務大小,但沒有一個統(tǒng)一標準,大多是根據(jù)經(jīng)驗來劃分業(yè)務模塊。要記住,微服務是達到目的的手段,而不是目標
- 微服務的部署必然是分布式的,這會造成程序的復雜性。分布式事務、網(wǎng)絡延遲、系統(tǒng)容錯、服務之間的通信,以及服務發(fā)現(xiàn)、調(diào)用鏈跟蹤和代碼質(zhì)量
- 微服務架構下,不同的服務可能使用不同的數(shù)據(jù)庫。CAP(分布式環(huán)境下,一致性Consistency、可用性Availablity、分區(qū)容錯性Partition tolerance)原則的約束,使得不得不放棄強一致性,轉(zhuǎn)而接受最終一致性
- 對測試的挑戰(zhàn)
- 跨服務的系統(tǒng)變更
- 部署,微服務由不同的大量服務構成,每種服務都有自己的配置、應用實例數(shù)量以及基礎服務地址,所以我們需要統(tǒng)一的配置中心,服務發(fā)現(xiàn)機制,以及更好的部署策略和高度自動化水平
所有的挑戰(zhàn)體現(xiàn)在微服務的每一個細節(jié)
- API網(wǎng)關 Gateway
- 服務間調(diào)用
- 服務發(fā)現(xiàn)
- 服務容錯
- 服務部署
- 數(shù)據(jù)調(diào)用
3. 微服務的七大原則
- 圍繞業(yè)務概念建模
- 接受自動化文化
- 隱藏內(nèi)部實現(xiàn)細節(jié)
- 去中心化
- 獨立部署
- 設計故障模式
- 高度跟蹤
網(wǎng)頁名稱:掌握系列之微服務-1.概念
URL網(wǎng)址:
http://weahome.cn/article/ipchgi.html