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

十個必知必會的云原生架構(gòu)設(shè)計模式

開發(fā) 前端
單向架構(gòu)(面向前端)模式是一種結(jié)合響應(yīng)式編程的主要模式。在當(dāng)今的前端框架中,數(shù)據(jù)流是單向的,由數(shù)據(jù)流向驅(qū)動。數(shù)據(jù)僅以一種方向流向視圖,而視圖的反饋會觸發(fā)不同的操作。這種設(shè)計使得對數(shù)據(jù)的控制更加精確。在處理數(shù)據(jù)流時,使用不同的庫如RxJs、NgRx、Flux,可以提供多種功能和工具。

在構(gòu)建云原生應(yīng)用程序時,采用了一些不同的軟件架構(gòu)方法。云原生應(yīng)用程序通常采用微服務(wù)架構(gòu),以最大程度地利用云計算模型的優(yōu)勢。這些應(yīng)用程序需要能夠在動態(tài)編排和容器化環(huán)境中運行。

云原生計算是一種在現(xiàn)代、動態(tài)環(huán)境(如公有云、私有云和混合云)中構(gòu)建和運行可擴展應(yīng)用程序的軟件開發(fā)方法。

云環(huán)境中,軟件架構(gòu)的主要目標(biāo)是關(guān)注點的分離,特別是通過將軟件組件模塊化到容器中。為了實現(xiàn)這一目標(biāo),有幾種模式可供選擇。本文介紹一些常用模式。

1 邊車/副車模式

邊車/副車模式(Sidecar/Adaptor Pattern)用于將主要應(yīng)用程序的一些外圍功能或附加功能抽象為獨立的微服務(wù)。這種模式可以實現(xiàn)服務(wù)之間的獨立性,打破緊密耦合的組件。

邊車/副車模式適用于應(yīng)用程序使用相同的語言和庫,并且需要一個共享生命周期但可以獨立部署的服務(wù)。然而,如果為每個實例部署邊車服務(wù)的資源成本超過隔離優(yōu)勢,那么在應(yīng)用程序中實施邊車/副車模式可能不是一個明智的決策。例如,將日志記錄、配置等功能抽象到單獨的微服務(wù)中,如下面的示例所示,每個主要服務(wù)都有一個關(guān)聯(lián)的輔助服務(wù),它們之間形成一對一的關(guān)系。在應(yīng)用邊車/副車模式時,需要綜合考慮資源成本和隔離優(yōu)勢。

圖片邊車/副車模式

2 大使模式

大使模式(Ambassador Pattern)經(jīng)常用于擴展現(xiàn)有服務(wù)的網(wǎng)絡(luò)功能,特別是對于那些過于古老或復(fù)雜且無法修改的服務(wù)。

大使服務(wù)可以被視為與客戶端共存的一個進(jìn)程外代理。

通過此模式添加額外的代理會增加延遲。與邊車不同,這種模式可以用于多個服務(wù)。這種模式對于增強遺留服務(wù)的連接功能非常有效。如果低延遲是關(guān)鍵因素,使用大使模式可能會增加代理開銷成本,因此不是一個好的選擇。

圖片大使模式

3 散點/聚集模式

散點/聚集模式(Scatter/Gather Pattern)是一種用于并行處理大規(guī)模數(shù)據(jù)集的設(shè)計模式。這種模式的要點是有一個聚合器,匯總來自不同服務(wù)的響應(yīng)并提供最佳報價。這種模式對于控制消息流到所有微服務(wù)非常有用。

圖片散點/聚集模式

散點/聚集模式適用于需要對大量數(shù)據(jù)進(jìn)行并行處理的情況,如分布式計算、數(shù)據(jù)分析、并行搜索等。它可以提高系統(tǒng)的處理速度和吞吐量,利用多個處理單元同時處理數(shù)據(jù),從而加快處理過程。

4 前端后端模式

前端后端模式(Backends For Frontends Pattern)的主要要點是在前端和實際后端之間添加另一層后端,這被稱為前端后端。這是工業(yè)界廣泛應(yīng)用的最受歡迎的模式之一。通過添加這種額外的層,可以在不同的前端和后端服務(wù)器之間進(jìn)行編排,驗證過濾來自前端的響應(yīng),映射和轉(zhuǎn)換來自后端的數(shù)據(jù)模型。

圖片BFF模式

5 反腐敗層模式

反腐敗層模式(Anti-Corruption Layer Pattern)用于解決在不同子系統(tǒng)或微服務(wù)之間通信時的語義不匹配問題。這種模式最初由埃里克·埃文斯在領(lǐng)域驅(qū)動設(shè)計中描述。

當(dāng)存在多個子系統(tǒng)或微服務(wù)它們各自使用不同的語義和數(shù)據(jù)結(jié)構(gòu)時,可能會導(dǎo)致通信困難和混亂。反腐敗層模式的目標(biāo)是在這些不兼容的系統(tǒng)之間建立一個翻譯或轉(zhuǎn)換層,以確保它們之間能夠正確地交互和通信。這個層充當(dāng)了一個中間件,負(fù)責(zé)將一個系統(tǒng)的請求轉(zhuǎn)換為另一個系統(tǒng)可以理解的格式,并將響應(yīng)從一個系統(tǒng)的格式轉(zhuǎn)換為另一個系統(tǒng)可以接受的格式。

反腐敗層模式的缺點和注意事項:

  • 增加了額外的中間層,可能會引入性能延遲。
  • 需要額外的開發(fā)和維護工作來處理轉(zhuǎn)換邏輯。
  • 需要確保反腐敗層的正確性和穩(wěn)定性,以避免引入更多問題。

圖片反腐敗層模式

6 命令與查詢職責(zé)分離模式

命令與查詢職責(zé)分離模式(Command and Query Responsibility Segregation,CQRS)旨在將讀操作(查詢)和寫操作(命令)分離開來,以優(yōu)化系統(tǒng)的性能、可伸縮性和靈活性。

在傳統(tǒng)的應(yīng)用程序中,讀操作和寫操作通常共享相同的數(shù)據(jù)模型和數(shù)據(jù)庫,這會產(chǎn)生一些問題,例如當(dāng)需要進(jìn)行復(fù)雜查詢時,可能會對寫操作的性能產(chǎn)生影響,或者在需要高并發(fā)寫操作時可能會影響讀操作的性能。

解決方案是命令查詢職責(zé)分離(CQRS),將讀取和寫入分為不同的組件:

  • 命令必須基于任務(wù)(例如“預(yù)訂酒店房間”而不是“將預(yù)訂狀態(tài)設(shè)置為已預(yù)訂”)。
  • 命令通過異步通信實現(xiàn)。
  • 查詢不會改變數(shù)據(jù)庫。查詢響應(yīng)使用不包含業(yè)務(wù)邏輯的數(shù)據(jù)傳輸對象(DTO)。

這種模式的缺點是需要保持讀取和寫入組件的同步。

圖片命令查詢職責(zé)分離模式

7 事件溯源模式

事件溯源模式(Event Sourcing Pattern)是過去十年中流行的一種技術(shù),用于處理CRUD應(yīng)用程序缺乏一致性的情況。與傳統(tǒng)CRUD應(yīng)用程序僅保存當(dāng)前狀態(tài)不同,事件溯源的主要是以追加方式保存數(shù)據(jù),以存儲對數(shù)據(jù)執(zhí)行的完整系列操作。它提供了事務(wù)數(shù)據(jù)的一致性,保持了完整的編輯歷史記錄,提供完全的審計控制。

優(yōu)點:

  • 通過實現(xiàn)強數(shù)據(jù)一致性來提高性能。
  • 使用事件存儲簡化數(shù)據(jù)編輯的實現(xiàn)和管理。
  • 事件對領(lǐng)域?qū)<铱勺x,不僅對開發(fā)人員可理解。
  • 防止對同一數(shù)據(jù)的并發(fā)更新,因為其事件的時間順序。
  • 事件存儲作為數(shù)據(jù)操作的單一數(shù)據(jù)源

缺點:

  • 對于小型領(lǐng)域應(yīng)用來說可能過于工程化。
  • 不適用于實時數(shù)據(jù)驅(qū)動的應(yīng)用程序。

8 服務(wù)網(wǎng)格模式

服務(wù)網(wǎng)格模式(Service Mesh Pattern)旨在提供對微服務(wù)之間通信、安全、監(jiān)控和可觀察性的細(xì)粒度控制。

此模式要點是將與應(yīng)用程序無關(guān)的橫切關(guān)注點(如通信、監(jiān)控、安全性、身份驗證/授權(quán)等)與核心業(yè)務(wù)邏輯隔離開來。這種專用基礎(chǔ)設(shè)施層為低延遲、可配置性增加了價值。

除了身份驗證/授權(quán)、服務(wù)發(fā)現(xiàn),服務(wù)網(wǎng)格模式還提供其他重要功能,如:

  • 斷路器
  • 速率限制
  • 條件速率限制
  • 流量轉(zhuǎn)移

9 笨拙組件與智能組件(面向前端)模式

此模式是在關(guān)注點分離(SoC)原則基礎(chǔ)上的一種進(jìn)階模式。在這種模式中,將前端組件分為兩種類型:笨拙組件(Dumb Components)和智能組件(Smart Components)。笨拙組件主要負(fù)責(zé)呈現(xiàn)和展示數(shù)據(jù),而智能組件則負(fù)責(zé)處理數(shù)據(jù)流和業(yè)務(wù)邏輯,將數(shù)據(jù)注入到笨拙組件中。主要通過在笨拙組件中基于@Input和@Output(EventEmitter)的雙向數(shù)據(jù)綁定實現(xiàn)。通過這些注解,笨拙組件從智能組件獲取相關(guān)數(shù)據(jù),或?qū)?shù)據(jù)發(fā)送到智能組件。智能組件通常注入服務(wù)或外觀(Facade)并處理數(shù)據(jù)流。

10 單向架構(gòu)(面向前端)模式

單向架構(gòu)(面向前端)模式是一種結(jié)合響應(yīng)式編程的主要模式。在當(dāng)今的前端框架中,數(shù)據(jù)流是單向的,由數(shù)據(jù)流向驅(qū)動。數(shù)據(jù)僅以一種方向流向視圖,而視圖的反饋會觸發(fā)不同的操作。這種設(shè)計使得對數(shù)據(jù)的控制更加精確。在處理數(shù)據(jù)流時,使用不同的庫如RxJs、NgRx、Flux,可以提供多種功能和工具。

責(zé)任編輯:武曉燕 來源: Java學(xué)研大本營
相關(guān)推薦

2024-01-23 18:49:38

SQL聚合函數(shù)數(shù)據(jù)分析

2023-09-20 22:52:12

Kubernetes快捷方式

2019-07-05 07:49:19

TCPIP網(wǎng)絡(luò)協(xié)議

2023-11-08 18:01:53

硬重置Git命令

2020-06-03 15:25:27

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

2023-10-19 21:30:36

架構(gòu)CQRS模式

2023-10-13 00:00:00

設(shè)計模式GO語言

2024-08-22 08:57:32

Python技巧參數(shù)

2011-02-28 16:43:55

2022-03-09 08:36:12

ReactTypeScript干凈代碼

2018-10-26 14:10:21

2023-05-08 15:25:19

Python編程語言編碼技巧

2023-04-20 14:31:20

Python開發(fā)教程

2009-07-16 13:28:14

2022-08-26 14:46:31

機器學(xué)習(xí)算法線性回歸

2020-07-10 07:58:14

Linux

2020-08-23 18:18:27

Python列表數(shù)據(jù)結(jié)構(gòu)

2024-11-15 11:11:48

2023-07-03 00:47:23

2021-03-03 10:39:11

容器微服務(wù)IT
點贊
收藏

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