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

微服務模式:Sidecar

譯文
開發(fā) 架構(gòu)
一文帶你了解如何使用Sidecar來實現(xiàn)微服務。

譯者 | 布加迪 

合理設計的微服務應遵循單一職責原則,因此分離應該被架構(gòu)中的其他服務重用的通用功能很重要。Sidecar模式提倡通過識別每個服務中的通用功能來增強模塊性,將它們組合到庫中,或?qū)⑺鼈円频絾为毜姆罩小?/span>

顧名思義,Sidecar模式提倡分離橫切關注點(cross-cutting concern),將橫切關注點從實際服務中移除,推送到單獨的模塊、庫或服務,然后這些功能可被架構(gòu)中的其他服務重用。

本文討論了微服務架構(gòu)中哪種功能可以作為候選功能或可以被視為Sidecar,以及Sidecar的實現(xiàn)方法和優(yōu)缺點。

Sidecar候選功能

面向切面編程帶來了分離橫切關注點這個值得關注的概念;簡而言之,從代碼中移除通用功能,只關注業(yè)務邏輯,這就是在服務內(nèi)的每個方法/函數(shù)中重復相同代碼的意義所在。

Sidecar模式本質(zhì)上相似;唯一的區(qū)別是,Sidecar模式從微服務方面進行對話。將代碼的通用部分抽象出來變得更重要了。

一些最重要的候選功能包括如下:

?日志聚合

?安全

?錯誤處理,并在發(fā)布錯誤日志或?qū)㈠e誤事件推送到Kafka主題或監(jiān)控隊列之后采取必要的動作。

?項目中的通用功能類似于實體(數(shù)據(jù)庫模型)或其他服務也使用的特定業(yè)務邏輯。

?其他服務正常運行所需要的服務或數(shù)據(jù)庫配置、Kafka配置、隊列配置等方面的配置更改。

?緩存需求(如果有這種需求的話)。

 

所有這些通用功能/Sidecar可以附加到服務上,就像邊車附加到摩托車上那樣。

 

優(yōu)缺點

?優(yōu)點

實施這種模式的最大優(yōu)點是,所有通用功能都可供架構(gòu)中的所有服務使用,它通過將通用功能抽象到不同的層,大大降低了架構(gòu)的復雜性。

微服務本質(zhì)上是多語言的,這些通用功能可以使用最適合該特定操作的技術或編程語言來開發(fā)。

模式隱式避免了代碼重復,因為我們不需要在每個服務中編寫這種重復的代碼。

服務和Sidecar候選功能之間是松散耦合的關系。

?缺點

Sidecars具有單獨的可維護性,這可能是庫或單獨的服務。如果我們在應用程序中有大量的Sidecar,那么它會影響服務的性能。需要確定Sidecar功能是否需要獨立于主服務進行擴展;如果是,需要將這些Sidecar作為單獨的服務來托管。

實施方法

?將Sidecars保存在單獨的庫中

最常見的方法是將Sidecars保存在單獨的庫中,并將這些庫單獨導入到微服務中,比如將數(shù)據(jù)庫模型保存在單獨的庫中,然后通過該庫將這些模型導入到所有微服務,有各種構(gòu)建工具(比如Maven、Gradle或SBT等)可用用于配置。

這種方法有以下缺點:

Sidecar過載:設想一個項目中維護多個Sidecar,比如架構(gòu)中存在的日志、緩存、配置和安全都可能會在所有微服務中帶來Sidecar過載的問題。

版本不一致:維護每個庫的正確版本對于開發(fā)人員來說將是一場噩夢,想象一下cache-lib Sidecar擁有服務A在使用的最新版本1.1,但我們忘了提及仍在使用cache-lib版本1.0的服務B的正確版本,這會在應用程序中產(chǎn)生明顯的不一致,而這種不一致很難調(diào)試和識別。

解決這個問題的一種方法是創(chuàng)建一個含有所有這些Sidecar庫的Uber庫,然后我們需要做的就是在微服務中維護Uber庫的正確版本,我們需要確保Uber庫經(jīng)過更新,使用最新版本的Sidecars,比如說cache-lib 1.1應該在Uber庫中可用。

?將Sidecars保留為單獨的服務

另一種方法是在單獨的服務中各自維護Sidecar。但是為每個操作調(diào)用服務調(diào)用會帶來嚴重的性能問題,但理想情況下,我們通常不為日志或通用功能創(chuàng)建服務。安全或緩存可能是理想的獨立的服務候選功能。

這種方法的最大缺點是,始終需要優(yōu)化服務間通信以獲得更好的性能。在這種情況下,它就像架構(gòu)中的另一個微服務,總是需要擴展,監(jiān)控哪種有悖Sidecar的用途。

結(jié)論

Sidecar模式是一種非常有用且簡潔的模式,它使橫切關注點遠離實際的服務實現(xiàn)。合理設計的微服務應該始終遵循單一職責原則(SRP),而Sidecar模式通過遠離重復功能來補充SRP原則。每個設計原則都有優(yōu)缺點,在庫中維護Sidecar以及保留最重要功能的混合方法應該在單獨的服務中加以維護。 

原文標題:Microservices Patterns: Sidecar,作者:Sameer Shukla

鏈接:https://dzone.com/articles/microservices-patterns-sidecar

責任編輯:薛彥澤 來源: 51CTO
相關推薦

2025-02-28 09:40:21

SidecarSCA服務

2023-09-02 20:51:09

微服務業(yè)務服務

2023-09-07 23:25:34

微服務服務發(fā)現(xiàn)

2021-12-28 08:36:55

網(wǎng)關APIRPC

2019-09-29 10:29:02

緩存模式微服務架構(gòu)

2022-04-23 16:58:24

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

2022-08-14 07:04:44

微服務架構(gòu)設計模式

2023-12-22 14:27:30

2022-08-08 13:55:47

通信設計模式微服務

2024-08-09 10:59:01

KubernetesSidecar模式

2022-08-07 22:11:25

微服務架構(gòu)

2022-06-27 07:33:19

微服務Loki

2022-09-21 16:56:16

設計模式微服務架構(gòu)

2022-08-09 12:27:37

API集成微服務

2024-07-19 09:01:07

2021-07-02 06:54:45

軟件架構(gòu)模式

2020-09-24 06:47:06

ServiceMesh模式

2022-09-15 10:44:42

SidecarIstioeBPFizer

2022-08-12 06:26:54

微服務架構(gòu)

2024-06-03 00:00:10

微服務Python
點贊
收藏

51CTO技術棧公眾號