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

事件驅(qū)動架構(gòu)和微服務(wù)架構(gòu)的區(qū)別與聯(lián)系

開發(fā) 架構(gòu)
我們生活在一個軟件開發(fā)的新時代,一個云原生應(yīng)用時代。為云交付而構(gòu)建的應(yīng)用程序必須具有高度可傳輸性、非常松散耦合、高度彈性和極快的響應(yīng)能力。這要求很多。將今天的開發(fā)環(huán)境與之前的環(huán)境進(jìn)行比較有助于解釋所有這些是如何實(shí)現(xiàn)的。

我們生活在一個軟件開發(fā)的新時代,一個云原生應(yīng)用時代。為云交付而構(gòu)建的應(yīng)用程序必須具有高度可傳輸性、非常松散耦合、高度彈性和極快的響應(yīng)能力。這要求很多。將今天的開發(fā)環(huán)境與之前的環(huán)境進(jìn)行比較有助于解釋所有這些是如何實(shí)現(xiàn)的。

[[436447]]

1、事件驅(qū)動和微服務(wù)的區(qū)別

微服務(wù)架構(gòu)旨在將單個大型“單體”設(shè)計/系統(tǒng)分解為多個獨(dú)立的組件/流程,從而使代碼庫更加細(xì)化和易于管理。甲微服務(wù)基本上是小的,松散耦合的分布式服務(wù)。它是更廣泛的微服務(wù)架構(gòu)的一部分,由一組松散耦合的微服務(wù)組成,這些微服務(wù)一起運(yùn)行以解決一個共同的目標(biāo)。

事件驅(qū)動架構(gòu)(EDA)是一種解決耦合的方法,否則會在較大系統(tǒng)中的組件進(jìn)行通信時發(fā)生(這就是微服務(wù)中發(fā)生的情況)。當(dāng)微服務(wù)同步通信時,通過API調(diào)用,它們會變得相互依賴,導(dǎo)致系統(tǒng)難以維護(hù)。EDA通過使用事件代理作為中介,允許組件通過引發(fā)和響應(yīng)事件進(jìn)行通信來解決這個問題。

2、單體巨石程序與服務(wù)獨(dú)立性

大多數(shù)給定應(yīng)用程序都是作為單個代碼塊編寫的。每個函數(shù)、每個布爾選項(xiàng)、每個重復(fù)或迭代過程以及應(yīng)用程序調(diào)用的每個服務(wù)都包含在該代碼中。每個服務(wù)、進(jìn)程、函數(shù)、子例程和庫之間的通信是代碼處理中固有的。

在這樣一個完整的單體應(yīng)用程序中,如果代碼中的任何地方出現(xiàn)任何問題,整個應(yīng)用程序都會完全崩潰。程序錯誤……嚴(yán)重錯誤……致命錯誤……它們都不是令人愉快的,而且通常不容易解決。

如果任何服務(wù)中出現(xiàn)的缺陷會導(dǎo)致整個應(yīng)用程序癱瘓,那么合乎邏輯的解決方案是通過單獨(dú)和獨(dú)立運(yùn)行來隔離每個服務(wù)。任何服務(wù)中的故障只會導(dǎo)致該進(jìn)程停止運(yùn)行,而不是整個應(yīng)用程序停止運(yùn)行,整個應(yīng)用程序?qū)⒗^續(xù)運(yùn)行,直到重新實(shí)例化失敗的服務(wù)并變?yōu)榭捎脼橹埂?/p>

為了提高每個服務(wù)的隔離度,微服務(wù)在容器內(nèi)的自己的進(jìn)程中運(yùn)行,該容器包括服務(wù)的代碼、其配置、所有依賴項(xiàng)、庫以及運(yùn)行代碼所需的其他資源。容器化服務(wù)可以單獨(dú)測試并作為容器化鏡像實(shí)例部署到主機(jī)操作系統(tǒng)。

將應(yīng)用程序創(chuàng)建為獨(dú)立容器化微服務(wù)的集合有幾個顯著的優(yōu)勢:

由于它們各自獨(dú)立執(zhí)行,因此每個微服務(wù)可以包含不同的代碼——在不同的平臺上創(chuàng)建不同的依賴項(xiàng)。

  • 微服務(wù)無需修改即可部署在不同的環(huán)境中。
  • 容器直接在操作系統(tǒng)上運(yùn)行,比VM映像占用的空間小得多。
  • 通過為各種任務(wù)創(chuàng)建新容器,可以輕松實(shí)現(xiàn)橫向擴(kuò)展。
  • 新映像的實(shí)例化(創(chuàng)建容器的過程)與實(shí)例化服務(wù)或Web應(yīng)用程序沒有什么不同。
  • 容器提供獨(dú)立性、隔離性、可移植性、可擴(kuò)展性和控制性。

3、新的關(guān)聯(lián)關(guān)系

微服務(wù)、容器、DevOps、持續(xù)改進(jìn)、持續(xù)開發(fā)和部署(CI/CD)、事件驅(qū)動架構(gòu)(EDA)等都圍繞實(shí)現(xiàn)更高的敏捷性而結(jié)合在一起。

容器中的每個微服務(wù)都獨(dú)立于所有其他微服務(wù),從而通過啟用分段部署來提高應(yīng)用程序的彈性。如果需要對任何特定微服務(wù)進(jìn)行更改,則不需要重建甚至停止整個應(yīng)用程序。這也允許簡化維護(hù)。

開發(fā)者還可以享受分工協(xié)作,組成小團(tuán)隊來構(gòu)建和維護(hù)特定的服務(wù)。他們甚至可以用任何語言構(gòu)建這些服務(wù),因?yàn)槊總€服務(wù)都與所有其他服務(wù)分開運(yùn)行。

將所有這些結(jié)合在一起,容器化微服務(wù)符合敏捷性的核心概念。它們是非常松散耦合的,因此更改一個微服務(wù)不需要更改另一個。而且由于微服務(wù)易于復(fù)制,因此它們的可擴(kuò)展性也很高。如果需要更改,只需修改需要更改的服務(wù)。容器實(shí)際上是應(yīng)用服務(wù)粒度的定義。

4、事件驅(qū)動的微服務(wù)架構(gòu)

 

事件驅(qū)動架構(gòu)和微服務(wù)架構(gòu)的區(qū)別與聯(lián)系

 

傳感事件驅(qū)動示意

一個簡單的事件通常需要復(fù)雜的響應(yīng)。所上圖所求,房屋傳感器檢測到昂貴的戒指被盜的事件。諸如此類的事件處理器通過發(fā)出警報同時通知戒指的所有者和警察以便他們能夠做出反應(yīng)來提供必要的指導(dǎo)以提供威懾。這些通知中沒有一個需要知道其他通知,也不需要在執(zhí)行之前等待它們發(fā)生。此序列提供的即時操作展示了松散耦合的價值。

5、云原生應(yīng)用

互連的容器化微服務(wù)可創(chuàng)建云原生應(yīng)用程序,這些應(yīng)用程序可輕松傳輸?shù)骄W(wǎng)絡(luò)上需要的任何位置。為了可靠和一致地運(yùn)行,他們必須擁有一個能夠自動執(zhí)行所有潛在響應(yīng)的通信平臺(如:Istio)。

經(jīng)典的單體應(yīng)用很難實(shí)現(xiàn)這一點(diǎn),因?yàn)樗鼈兗炔荒芎芎玫財U(kuò)展,也不能提供所需的彈性。然而,云原生應(yīng)用程序利用EDA使它們能夠促進(jìn)定義DevOps目標(biāo)的敏捷性——在高度促進(jìn)持續(xù)開發(fā)和部署的動態(tài)環(huán)境中實(shí)現(xiàn)持續(xù)改進(jìn)。 

總之,微服務(wù)和EDA是互補(bǔ)的,但也可以獨(dú)立存在。微服務(wù)不必使用EDA構(gòu)建。同樣,EDA可以獨(dú)立存在于不使用微服務(wù)的系統(tǒng)中,但隨著云原生的推廣應(yīng)用,兩者之間的關(guān)系越來越“親密無間”。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2023-07-12 08:30:52

服務(wù)架構(gòu)事件驅(qū)動架構(gòu)

2023-09-15 12:30:06

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

2023-09-12 22:58:51

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

2021-03-26 11:35:48

微服務(wù)分布式服務(wù)器

2022-04-25 10:44:08

微服務(wù)架構(gòu)設(shè)計

2023-07-28 09:23:24

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

2022-03-29 10:36:32

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

2024-01-19 11:57:42

2018-03-28 10:32:18

微服務(wù)無服務(wù)器CQRS

2021-10-18 10:47:29

EDAEventBridge

2017-12-20 15:37:39

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

2015-05-25 13:44:42

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

2019-10-12 09:04:59

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

2024-11-19 08:10:00

2019-12-26 15:49:14

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

2015-02-05 09:12:56

Docker微服務(wù)AWS

2017-07-04 14:57:40

微服務(wù)paasdocker

2023-07-27 14:03:51

微服務(wù)

2023-12-05 15:18:27

事件驅(qū)動架構(gòu)RESTful通信模式

2019-10-16 08:41:46

微服務(wù)架構(gòu)Nginx
點(diǎn)贊
收藏

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