https://en.wikipedia.org/wiki/Microservices

https://zh.wikipedia.org/wiki/微服務

微服務 (Microservices) 是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊 (Small Building Blocks) 為基礎,利用模組化的方式組合出複雜的大型應用程式,各功能區塊使用與語言無關 (Language-Independent/Language agnostic) 的 API 集相互通訊。微服務架構運用於軟體架構風格的其中一項概念是甘露運算 (Dew Computing),意指由許多的小露水 (代表微服務的功能元件) 匯集而成的運算能力。

微服務的起源是由 Peter Rodgers 博士於 2005 年度雲端運算博覽會提出的微 Web 服務 (Micro-Web-Service) 開始,Juval Löwy 則是與他有類似的前導想法,將類別變成細粒服務 (granular services),以作為 Microsoft 下一階段的軟體架構,其核心想法是讓服務是由類似 Unix 管道的存取方式使用,而且複雜的服務背後是使用簡單 URI 來開放介面,任何服務,任何細粒都能被開放 (exposed)。這個設計在 HP 的實驗室被實現,具有改變複雜軟體系統的強大力量。

2014年,Martin FowlerJames Lewis 共同提出了微服務的概念,定義了微服務是由以單一應用程式構成的小服務,自己擁有自己的行程與輕量化處理,服務依業務功能設計,以全自動的方式部署,與其他服務使用 HTTP API 通訊。同時服務會使用最小的規模的集中管理 (例如 Docker) 能力,服務可以用不同的程式語言與資料庫等元件實作。

单一职责 内聚

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

自治

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

技术异构,用最适合的技术

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

弹性  系统一个组件故障了,不产生级联故障

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

扩展仅需要扩展的部分

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

简化部署,各个服务独立部署

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

与组织结构匹配

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

对可替代性的优化

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

Microservices  微服务概念和优点    自治  弹性 级联故障  微服务的问题   CAP   分布式事务                  修改一个服务并对其部署而不影响其他任务服务-LMLPHP

修改一个服务并对其部署而不影响其他任务服务

05-11 11:33