微服務的概念
微服務
微服務是業(yè)務概念,即提供某種服務的某個進程。
每一個服務都具有自主運行的業(yè)務功能,對外開放不受語言限制的API (最常用的是HTTP)。
多個微服務組成應用程序。
實例
一個微服務的最小運行和部署單元,通常對應一個應用進程。同一個微服務通過部署在多個容器或虛機,可以實現多個實例同時運行。
版本
微服務場景中版本用來標記微服務的迭代記錄,方便對微服務的不同迭代進行管理。
契約
微服務場景中的契約是指服務契約,它是基于OpenAPI規(guī)范的微服務接口約束規(guī)范,是服務端和消費端對于接口的定義。
配置
微服務場景中的配置是指對程序代碼中某些變量的取值控制。比如,動態(tài)配置就是通過在微服務運行過程中對某些變量的取值進行動態(tài)變更。
應用
完成某項完整業(yè)務場景的軟件系統。應用一般由多個微服務組成,應用里面的微服務能夠相互發(fā)現和調用。
環(huán)境
服務中心建立的一個邏輯概念,比如development、production等。不同環(huán)境里面的微服務實例邏輯隔離、無法相互發(fā)現和調用。
治理策略
微服務治理中的一個概念,指當前治理使用的某種方法。每一種治理策略都可以綁定一個業(yè)務場景,同一種策略不可以綁定多種業(yè)務場景。不同的治理策略可以綁定同一個業(yè)務場景。
業(yè)務場景
用來描述治理中的治理策略作用生效的條件,一個業(yè)務場景可以綁定多個不同的治理策略。
微服務的優(yōu)勢
開源開放
支持接入原生SpringCloud、ServiceComb、Dubbo應用,支持使用服務網格接入遺留應用
安全可靠
提供微服務基于角色的安全接入、多AZ容災等能力
擁抱云原生
華為核心業(yè)務云原生轉型基礎底座,經華為終端業(yè)務億級用戶考驗
場景化管理
基于業(yè)務場景的可視化微服務應用管理及治理
微服務的基礎能力
微服務注冊發(fā)現
微服務啟動時,將實例信息注冊到CSE,包括實例的基本信息,如應用名稱、微服務名稱、版本號、服務契約、實例地址等;微服務需要調用其他微服務的接口時,從CSE查詢實例信息,并將實例信息緩存到本地,緩存會通過事件通知、定時查詢等機制更新;通過本地緩存的地址信息,實現微服務之間的點到點調用,當微服務存在多個實例的情況,可以配置不同的負載均衡策略,包括輪詢、權重、灰度發(fā)布、同可用區(qū)優(yōu)先等。
運維層面,可以通過CSE查看實例列表、微服務調用關系、服務契約等,幫助客戶了解應用系統組成、運行狀態(tài)等信息。
服務治理
服務治理有兩種開啟策略:
1、一種是開發(fā)態(tài)就配置好,這種策略適合通用型,滿足全業(yè)務場景的策略,比如負載均衡策略。
2、另外一種是運行態(tài)修改,這種策略適合根據業(yè)務變化需要動態(tài)調整的場景,比如限流策略。
兩種策略內部實現機制一般是相同的,需要配置管理系統下發(fā)治理策略和運行時SDK執(zhí)行治理策略,運行時治理SDK包含在用戶選擇的微服務開發(fā)框架及其擴展包里面,與微服務一起編譯集成。CSE控制臺提供了常見的治理策略管理功能,方便用戶根據業(yè)務變化,調整治理策略。
配置管理
配置管理集中管理微服務的配置,配置管理根據配置項的屬性,比如作用域、標簽等,將配置下發(fā)到具體的微服務。
配置管理提供一系列方便的功能,比如查看歷史版本和配置回滾、配置導入導出、靈活的作用域管理等,滿足用戶管理復雜環(huán)境和海量微服務的業(yè)務訴求。
微服務的應用場景
微服務應用解決方案
微服務引擎雙棧模式同時支持侵入式框架和非侵入式服務網格模式,做到統一接入和統一治理;可同時支持主流的Java微服務框架、多語言場景和企業(yè)遺留應用的零成遷移。
微服務應用高可用運維
適用于電商、游戲、教育、媒資、能源及金融等有明顯波峰波谷場景的應用,通過CSE可以實現分布式系統細粒度治理和高可用保障。