微服務架構
?“微服務架構(Microservice Architecture)”一詞在過去幾年里廣泛的傳播,它用于描述一種設計應用程序的特別方式,作為一套獨立可部署的服務。目前,這種架構方式還沒有準確的定義,但是在圍繞業(yè)務能力的組織、自動部(automated deployment)、端智能(intelligence in the endpoints)、語言和數據的分散控制,卻有著某種共同的特征。
簡而言之,微服務架構風格,就像是把一個單獨的應用程序開發(fā)為一套小服務,每個小服務運行在自己的進程中,并使用輕量級機制通信,通常是 HTTP API。這些服務圍繞業(yè)務能力來構建,并通過完全自動化部署機制來獨立部署。這些服務使用不同的編程語言書寫,以及不同數據存儲技術,并保持最低限度的集中式管理。
我們可以使用一個例子來說明一下,這里引用了網上的例子,原文是系列文章,寫的非常好,強烈建議大家看一下。原文地址 翻譯博客地址
開發(fā)一款類似于滴滴打車的調度軟件。核心業(yè)務模塊包括:
- BILLING:計費模塊
- PASSENGER MANAGERMENT: 乘客管理模塊
- NOTIFICATION:身份認證模塊
- PAYMENTS:訂單模塊
- TRIP MANAGERMENT: 定位功能管理模塊
- DRIVER MANAGERMENT: 司機管理模塊
單體架構模式
圍繞著核心的是與外界打交道的適配器,適配器包括數據庫訪問組件、生產和處理消息的消息組件,以及提供API或者UI訪問支持的web模塊等。

微服務架構模式

一個微服務一般完成某個特定的功能,每一個微服務都是微型六角形應用,都有自己的業(yè)務邏輯和適配器。一些微服務還會發(fā)布API給其它微服務和應用客戶端使用。
具體的其他內容可以點擊鏈接查看 微服務(Microservices)翻譯
Spring Cloud
Spring Cloud是一個相對比較新的微服務框架,雖然Spring Cloud時間最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系統(tǒng)解決方案。spring Cloud 為開發(fā)者提供了在分布式系統(tǒng)(配置管理,服務發(fā)現(xiàn),熔斷,路由,微代理,控制總線,一次性token,全居瑣,決策競選,分布式session,集群狀態(tài))中快速構建的工具,使用Spring Cloud的開發(fā)者可以快速的啟動服務或構建應用.它們將在任何分布式環(huán)境中工作,包括開發(fā)人員自己的筆記本電腦,裸物理機的數據中心,和像Cloud Foundry云管理平臺。
原英文出處:
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
Spring Cloud 專注于為典型的使用實例并為這些實例提供可擴展機制。
- 分布式/版本化配置
- 服務注冊和發(fā)現(xiàn)
- 路由
- 服務之間的通信
- 負載均衡
- 斷路器
- 全球鎖
- 決策競選和集群狀態(tài)
- 分布式消息
版本說明
針對不同的spring-boot版本,對應的spring-cloud版本也是不同的。
| Release Train | Boot Version |
|---|---|
| Greenwich | 2.1.x |
| Finchley | 2.0.x |
| Edgware | 1.5.x |
| Dalston | 1.5.x |
總結
目前在看 翟永超的《spring cloud微服務實戰(zhàn)》雖然書中使用的版本是比較老舊的,但是核心思想不變,這邊我會邊學習邊研究新版的spring cloud 也就是Greenwich版。