自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微服務(wù)架構(gòu)落地及其演進(jìn)

開發(fā) 前端
Spring Cloud提供了一整套微服務(wù)架構(gòu)的解決方案,通過服務(wù)注冊與發(fā)現(xiàn)、配置管理、消息隊(duì)列、分布式跟蹤、服務(wù)熔斷等組件,幫助開發(fā)者構(gòu)建高可用、高擴(kuò)展性的微服務(wù)系統(tǒng)。這張生態(tài)圖展示了各個(gè)組件之間的關(guān)系和作用,是理解Spring Cloud生態(tài)系統(tǒng)的一個(gè)很好的參考。

微服務(wù)架構(gòu)的定義:

圖片圖片

如何篩選微服務(wù):

圖片圖片

三種場景可以考慮使用微服務(wù)

(Are you tall enough?)

  • 規(guī)模大(團(tuán)隊(duì)超過10人)
  • 業(yè)務(wù)復(fù)雜度高(系統(tǒng)超過5個(gè)子模塊)
  • 需要長期演進(jìn)(項(xiàng)目周期超過半年)

其他因素篩選微服務(wù)

  • 軟件功能變化頻繁,快速迭代,縮短交付周期為核心的業(yè)務(wù)。
  • 模塊有獨(dú)立的生命周期,服務(wù)復(fù)用,降本增效,減少重復(fù)造輪子
  • 有獨(dú)立的隔離性需求和擴(kuò)展性需求(容錯(cuò))
  • 簡化的外部依賴(Facade模式場景)

如何拆分微服務(wù):

圖片圖片

拆分

  1. Domain-Driven Design (DDD)
  • Domain(領(lǐng)域): 領(lǐng)域是指與某個(gè)特定問題相關(guān)的知識(shí)領(lǐng)域和行為。在設(shè)計(jì)微服務(wù)時(shí),首先要識(shí)別和定義業(yè)務(wù)領(lǐng)域。
  • Bounded Context(界限上下文): 界限上下文定義了領(lǐng)域的邊界。在拆分微服務(wù)時(shí),要確保每個(gè)服務(wù)有明確的邊界,獨(dú)立承擔(dān)特定的業(yè)務(wù)功能。
  1. 業(yè)務(wù)功能模塊化
  • 將系統(tǒng)按照業(yè)務(wù)功能拆分成多個(gè)模塊,每個(gè)模塊對應(yīng)一個(gè)或多個(gè)微服務(wù)。例如:訂單服務(wù)、用戶服務(wù)、支付服務(wù)等。

  1. 垂直拆分

  • 圖片左側(cè)展示了不同層次的架構(gòu)設(shè)計(jì),從實(shí)體層到接口適配層再到控制層,可以根據(jù)這些層次進(jìn)行垂直拆分,使每個(gè)微服務(wù)獨(dú)立處理特定的功能。

構(gòu)建

12-Factor App 方法論

  • I. 基準(zhǔn)代碼: 一份基準(zhǔn)代碼,多份部署。每個(gè)微服務(wù)應(yīng)該有自己的代碼庫。
  • II. 依賴: 顯式聲明和隔離依賴關(guān)系。確保微服務(wù)之間的依賴關(guān)系清晰明確。
  • III. 配置: 在環(huán)境中存儲(chǔ)配置。將配置和代碼分離,以便在不同環(huán)境中輕松部署。
  • IV. 后端服務(wù): 把后端服務(wù)當(dāng)作附加資源。微服務(wù)應(yīng)能夠獨(dú)立調(diào)用其他后端服務(wù)。
  • V. 構(gòu)建、發(fā)布、運(yùn)行: 嚴(yán)格分離構(gòu)建和運(yùn)行階段。確保每個(gè)微服務(wù)的構(gòu)建和運(yùn)行環(huán)境一致。
  • VI. 進(jìn)程: 以一個(gè)或多個(gè)無狀態(tài)進(jìn)程運(yùn)行應(yīng)用。微服務(wù)應(yīng)該無狀態(tài),方便擴(kuò)展。
  • VII. 端口綁定: 通過端口綁定提供服務(wù)。每個(gè)微服務(wù)獨(dú)立運(yùn)行并監(jiān)聽自己的端口。
  • VIII. 并發(fā): 通過進(jìn)程模型進(jìn)行擴(kuò)展。根據(jù)需要?jiǎng)討B(tài)擴(kuò)展微服務(wù)實(shí)例。
  • IX. 易處理: 快速啟動(dòng)和優(yōu)雅終止,確保最大化健壯性。微服務(wù)應(yīng)快速啟動(dòng)并能平滑關(guān)閉。
  • X. 環(huán)境等價(jià): 盡可能的保持開發(fā)、預(yù)發(fā)布、線上環(huán)境相同。確保不同環(huán)境的一致性。
  • XI. 日志: 把日志當(dāng)作事件流。集中管理和分析日志。
  • XII. 管理進(jìn)程: 后臺(tái)管理任務(wù)作為一次性進(jìn)程運(yùn)行。后臺(tái)任務(wù)應(yīng)獨(dú)立運(yùn)行。

DevOps 實(shí)踐

  • 自動(dòng)化部署:使用CI/CD管道實(shí)現(xiàn)代碼的自動(dòng)構(gòu)建、測試和部署。

  • 持續(xù)監(jiān)控:對微服務(wù)的運(yùn)行狀態(tài)進(jìn)行持續(xù)監(jiān)控,確保服務(wù)的高可用性。

技術(shù)選型

  • 選擇合適的技術(shù)棧和工具來支持微服務(wù)的開發(fā)和運(yùn)維。例如:Spring Boot、Docker、Kubernetes等。

微服務(wù)架構(gòu)的兩種建設(shè)思路:

圖片圖片

SpringCloud的技術(shù)生態(tài):

圖片圖片

Spring Cloud提供了一整套微服務(wù)架構(gòu)的解決方案,通過服務(wù)注冊與發(fā)現(xiàn)、配置管理、消息隊(duì)列、分布式跟蹤、服務(wù)熔斷等組件,幫助開發(fā)者構(gòu)建高可用、高擴(kuò)展性的微服務(wù)系統(tǒng)。這張生態(tài)圖展示了各個(gè)組件之間的關(guān)系和作用,是理解Spring Cloud生態(tài)系統(tǒng)的一個(gè)很好的參考。

Service(服務(wù))

  • 服務(wù)注冊:使用Eureka或Consul進(jìn)行服務(wù)注冊。
  • 服務(wù)調(diào)用:通過Feign進(jìn)行服務(wù)調(diào)用,依賴Ribbon實(shí)現(xiàn)負(fù)載均衡。
  • 服務(wù)跟蹤:使用Sleuth進(jìn)行分布式服務(wù)跟蹤。
  • 服務(wù)熔斷:使用Hystrix實(shí)現(xiàn)服務(wù)熔斷,Turbine用于集群監(jiān)控。
  • 依賴管理:使用CLI服務(wù)調(diào)用腳本,任務(wù)調(diào)度和數(shù)據(jù)流(Data Flow)管理。
  • 大數(shù)據(jù):通過JPA封裝JDBC連接大數(shù)據(jù)。
  • 配置管理:通過Config Server管理配置,支持本地和遠(yuǎn)程Git倉庫。

Consumer(消費(fèi)者)

  • 消息消費(fèi):通過Spring Cloud Stream與RabbitMQ或Kafka集成,實(shí)現(xiàn)消息隊(duì)列的消費(fèi)。
  • 服務(wù)發(fā)現(xiàn):通過Eureka或Consul發(fā)現(xiàn)服務(wù)。
  • 服務(wù)安全:通過Security實(shí)現(xiàn)服務(wù)的安全管理。
  • 網(wǎng)關(guān):使用Zuul實(shí)現(xiàn)網(wǎng)關(guān)功能,處理外部請求。
  • 服務(wù)配置:在服務(wù)啟動(dòng)時(shí)通過Config Server獲取配置信息。

Spring Boot Bus

  • 廣播消息:用于整個(gè)服務(wù)集群統(tǒng)一廣播消息,例如刷新配置。

其他組件

  • Cluster管理:使用Redis和其他集群管理工具(如Cluster)管理集群。
  • 容器化部署:使用Docker和Linux進(jìn)行容器化部署,支持命令行(CLI)調(diào)用服務(wù)。

消息隊(duì)列

  • 消息發(fā)布與訂閱:使用Spring Cloud Stream集成RabbitMQ和Kafka,實(shí)現(xiàn)消息的發(fā)布與訂閱。

配置管理

  • Config Server:管理配置文件,支持從本地或遠(yuǎn)程Git倉庫獲取配置,Spring Boot應(yīng)用在啟動(dòng)時(shí)會(huì)從Config Server獲取配置。

安全與網(wǎng)關(guān)

  • Security:提供服務(wù)的安全認(rèn)證與授權(quán)。
  • Zuul:作為網(wǎng)關(guān),處理外部請求并路由到相應(yīng)的服務(wù)。

分布式跟蹤

  • Sleuth:提供分布式系統(tǒng)的請求跟蹤。
  • Turbine:用于監(jiān)控Hystrix的集群服務(wù)。

負(fù)載均衡

  • Ribbon:在Feign調(diào)用時(shí),Ribbon提供負(fù)載均衡功能。

任務(wù)調(diào)度與數(shù)據(jù)流

  • Task:用于任務(wù)調(diào)度。
  • Data Flow:管理數(shù)據(jù)流。

微服務(wù)和SpringCloud的架構(gòu)復(fù)雜性:

圖片 圖片

責(zé)任編輯:武曉燕 來源: 二進(jìn)制跳動(dòng)
相關(guān)推薦

2019-12-31 10:33:48

架構(gòu)運(yùn)維技術(shù)

2022-04-28 11:04:27

架構(gòu)微服務(wù)技術(shù)

2023-12-30 08:27:13

2023-11-21 08:37:09

2024-06-03 10:19:05

2021-08-03 07:21:14

架構(gòu)微服務(wù)開發(fā)

2022-01-04 07:00:21

模型微服務(wù)架構(gòu)

2017-08-31 09:39:56

微服務(wù)架構(gòu)演進(jìn)

2023-07-28 09:23:24

微服務(wù)架構(gòu)

2020-08-28 08:29:40

云原生微服務(wù)編程

2021-06-07 10:13:01

單體架構(gòu)系統(tǒng)

2021-01-04 16:00:24

微服務(wù)架構(gòu)數(shù)據(jù)

2019-04-04 12:59:03

微服務(wù)企業(yè)數(shù)字化

2018-06-01 23:08:01

Spring Clou微服務(wù)服務(wù)器

2022-03-02 09:31:42

Serverless微服務(wù)架構(gòu)

2024-05-16 07:51:55

分布式系統(tǒng)架構(gòu)

2023-10-11 07:29:21

2018-11-15 07:56:26

2018-12-12 09:59:47

微服務(wù)架構(gòu)分布式系統(tǒng)

2019-09-16 15:30:51

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)