簡介
微服務架構是一種架構模式,它提倡將單一應用程式劃分成一組小的服務,服務之間互相協調、互
相配合。每個服務運行在其獨立的進程中,服務與服務間採用輕量級的通訊機制
互相協作(通常是基於HTTP協議的RESTful API)。每個服務都圍繞著具體業務進行構建,並且能夠被
獨立的部署。另外,對具體的服務而言,應根據業務上下文,選擇合適的語
言、工具對其進行構建。(眾多組件組合的開發模式和服務搭建的方式)
一般在項目初期採用單體架構效率會更高,但隨著項目的演化,越來越多的領網域加入,功能越來越複雜,此時如果採用微服務架構將會更合適。但如果此時再去考慮服務拆分,架構遷移,顯然成本會比最初就採用微服務架構要大很多。 微服務的特性 API Gateway
統一網關或去中心化組建,提供用戶端接入提供者。 服務拆分
服務拆分的合理性很大程度會決定這套架構的服務品質甚至成敗(業務拆分能力)。核心業務與非核心業務需要強拆。相對獨立的業務,並且業務變更頻率差異較大,伸縮需求差異較大,建議拆分 服務註冊及發現
zookeeper、consul、spring cloud中Eureka、Ribbon組件。 通訊模式
RESTful API、RPC、基於訊息。 一致性 可靠事件模式
基於事件驅動架構,通常某領域對象發生變更時通過訊息觸達訂閱業務方,完成相關業務操作。該模式的重點在於保證可靠事件投遞和避免重複消費。 業務補償模式
協調服務按順序調用各個微服務,如果某個微服務調用異常(包括業務異常和技術異常)就取消之前所有已經調用成功的微服務。 TCC模式
補償模式的一個完善版本。一個完整的TCC模式由一個主商務服務和若干個從商務服務組成,主商務服務發起並完成整個商務活動,TCC模式要求從服務提供三個介面:Try、Confirm、Cancel 可靠性
限流、隔離、服務降級、合理的逾時、熔斷(介面成功率) 其他特性
部署模式、安全、統一配置、監控、測試 常用微服務架構
spring cloud