偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

圖片圖片

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

圖片圖片

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

(Are you tall enough?)

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

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

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

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

圖片圖片

拆分

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

  1. 垂直拆分

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

構(gòu)建

12-Factor App 方法論

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

DevOps 實踐

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

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

技術(shù)選型

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

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

圖片圖片

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

圖片圖片

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

Service(服務(wù))

  • 服務(wù)注冊:使用Eureka或Consul進(jìn)行服務(wù)注冊。
  • 服務(wù)調(diào)用:通過Feign進(jìn)行服務(wù)調(diào)用,依賴Ribbon實現(xiàn)負(fù)載均衡。
  • 服務(wù)跟蹤:使用Sleuth進(jìn)行分布式服務(wù)跟蹤。
  • 服務(wù)熔斷:使用Hystrix實現(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(消費者)

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

Spring Boot Bus

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

其他組件

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

消息隊列

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

配置管理

  • Config Server:管理配置文件,支持從本地或遠(yuǎn)程Git倉庫獲取配置,Spring Boot應(yīng)用在啟動時會從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)用時,Ribbon提供負(fù)載均衡功能。

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

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

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

圖片 圖片

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

2019-12-31 10:33:48

架構(gòu)運維技術(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)

2020-08-28 08:29:40

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

2023-07-28 09:23:24

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

2021-06-07 10:13:01

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

2018-06-01 23:08:01

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

2019-04-04 12:59:03

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

2021-01-04 16:00:24

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

2022-03-02 09:31:42

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

2023-10-11 07:29:21

2024-05-16 07:51:55

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

2018-11-15 07:56:26

2019-09-16 15:30:51

2018-12-12 09:59:47

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

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