91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么Apache Kafka會(huì)成為微服務(wù)架構(gòu)事實(shí)上的標(biāo)準(zhǔn)和主干

GKwL_infoqchina ? 來源:InfoQ ? 2019-12-12 14:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

微服務(wù)與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)有著共生關(guān)系。所謂領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是一種設(shè)計(jì)方法,在這種方法中我們基于業(yè)務(wù)領(lǐng)域涉及的內(nèi)容用軟件精心搭建出一套模型,這套模型隨著時(shí)間的推移而逐漸發(fā)展,但并不受運(yùn)行系統(tǒng)的管道約束。我發(fā)現(xiàn)人們喜歡將這種模式與 Apache Kafka 結(jié)合起來,這種組合在實(shí)踐中也運(yùn)用得越來越多了。在這類項(xiàng)目中,微服務(wù)架構(gòu)通常使用 Kafka 作為事件流平臺(tái);而領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法則用來定義各種有界上下文,這些上下文表示應(yīng)用需要執(zhí)行的各種業(yè)務(wù)流程。它們與各種事件結(jié)合在一起,創(chuàng)建了一個(gè)將各個(gè)有界上下文與下游出現(xiàn)的上下文分離的單向依賴圖,以創(chuàng)建豐富多樣的事件流業(yè)務(wù)應(yīng)用。本文將探討為什么 Apache Kafka 會(huì)成為微服務(wù)架構(gòu)事實(shí)上的標(biāo)準(zhǔn)和主干——Kafka 不僅取代了其他傳統(tǒng)的中間件,而且人們還使用 DDD 和 Kafka 原生 API(如 Kafka Streams、KSQL 和 Kafka Connect)直接構(gòu)建微服務(wù)。 1 微服務(wù)

如今人們都想用微服務(wù)創(chuàng)建敏捷而靈活的架構(gòu),微服務(wù)這個(gè)術(shù)語在很多環(huán)境中都很常見。

雖然微服務(wù)并不是什么免費(fèi)的午餐,但它們確實(shí)提供了許多好處,解耦就是其中一項(xiàng)優(yōu)勢(shì)。解耦是圍繞業(yè)務(wù)功能來組織系統(tǒng),以形成分散的體系結(jié)構(gòu)的過程。其中智能端點(diǎn)和啞管道(dumb pipe)會(huì)確保:

基于微服務(wù)構(gòu)建的應(yīng)用程序需要盡可能分散開來,同時(shí)還保持緊密的協(xié)作關(guān)系——它們擁有自己的領(lǐng)域邏輯(這些邏輯針對(duì)的是各自需要處理的業(yè)務(wù)問題),且行為更像是經(jīng)典的 Unix 系統(tǒng)中的過濾器——接收一個(gè)請(qǐng)求,對(duì)其應(yīng)用合適的邏輯并生成回應(yīng)。—— Martin Fowler

https://martinfowler.com/articles/microservices.html

2 Apache Kafka——微服務(wù)的事件流平臺(tái)

應(yīng)該使用哪些技術(shù)來構(gòu)建微服務(wù)架構(gòu)?這個(gè)問題可以分為兩部分來回答:

1. 微服務(wù)之間怎樣相互通信

當(dāng)我們考慮微服務(wù)之間的通信問題時(shí)(比如說與同步 HTTP(S) 調(diào)用進(jìn)行通信),大多數(shù)人一開始會(huì)使用 REST 這個(gè)方法。很多用戶場(chǎng)景都可以使用這種方法。但是,請(qǐng)求——響應(yīng)模式所創(chuàng)建的點(diǎn)對(duì)點(diǎn)連接會(huì)將發(fā)送方與接收方的通信來往耦合在一起,這樣就很難在不影響其他組件的情況下更改某個(gè)組件。

因此許多架構(gòu)師使用中間件作為微服務(wù)通信的主干,以創(chuàng)建解耦、可擴(kuò)展和高度可用的系統(tǒng)。很多東西都能拿來用作中間件——比如說一些自定義粘合代碼或框架、像 RabbitMQ 這樣的消息傳遞系統(tǒng)、像 Talend 這樣的 ETL 工具、像 WSO2 這樣的 ESB,或者像 Apache Kafka 這樣的事件流平臺(tái)。

2. 如果你要使用中間件,該用哪個(gè)?

Apache Kafka 之所以能成為微服務(wù)事實(shí)上的標(biāo)準(zhǔn),主要原因是它融合了三個(gè)強(qiáng)大的概念:

發(fā)布和訂閱事件流,類似于消息隊(duì)列或企業(yè)消息傳遞系統(tǒng)

以容錯(cuò)方式存儲(chǔ)事件流

在事件流發(fā)生時(shí)實(shí)時(shí)處理

Kafka 將這三大支柱一起內(nèi)置到了一個(gè)分布式事件流平臺(tái)中,這樣用戶就可以用可靠、可擴(kuò)展和容錯(cuò)的方式將各種微服務(wù)(例如生產(chǎn)者和消費(fèi)者)分離開來。

為了更好地理解 Apache Kafka 相比傳統(tǒng)中間件(如 MQ、ETL 或 ESB 工具)的優(yōu)勢(shì),請(qǐng)參閱”Apache Kafka vs 企業(yè)服務(wù)總線——朋友,敵人還是亦敵亦友?”

下面探討像 Apache Kafka 這樣的事件流平臺(tái)是怎樣與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法建立聯(lián)系的。

3 用于構(gòu)建和解耦微服務(wù)的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法(DDD)

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)最早是由 Eric Evans 在他的一本著作中提出來的方法,用于構(gòu)建包含復(fù)雜業(yè)務(wù)領(lǐng)域的系統(tǒng)。也就是說你不會(huì)將 DDD 應(yīng)用于基礎(chǔ)架構(gòu)軟件或構(gòu)建路由器、代理或緩存層之類的項(xiàng)目中,而是會(huì)應(yīng)用到解決實(shí)際業(yè)務(wù)問題的軟件項(xiàng)目上。這種技術(shù)很好用,可以將業(yè)務(wù)模型與將各種模型連接在一起的管道代碼分離開來。將這兩部分在軟件層面分離開來之后,團(tuán)隊(duì)就很容易去設(shè)計(jì)、建模、構(gòu)建并改進(jìn)具體的產(chǎn)品實(shí)現(xiàn)。

DDD 方法基于下列原則:

https://techbeacon.com/app-dev-testing/get-your-feet-wet-domain-driven-design-3-guiding-principles

團(tuán)隊(duì)需要與領(lǐng)域?qū)<医涣鳎瑥亩褂妙I(lǐng)域術(shù)語搭建領(lǐng)域模型

在領(lǐng)域代碼中嵌入領(lǐng)域術(shù)語

保護(hù)領(lǐng)域知識(shí)免受來自其他領(lǐng)域和技術(shù)子域的損害

本文討論的 DDD 核心概念是有界上下文。大型項(xiàng)目通常有許多種領(lǐng)域模型和有界上下文。但開發(fā)人員將不同種類有界上下文中的代碼組合在一起的過程中,軟件系統(tǒng)可能會(huì)變得越來越不可靠且難以理解。團(tuán)隊(duì)成員之間越來越難溝通,而且人們通常很難搞清楚某個(gè)模型不該應(yīng)用在哪些上下文中。

因此,DDD 要求我們明確定義每個(gè)模型所應(yīng)用的上下文對(duì)象。我們?cè)谠O(shè)置邊界時(shí)需要考慮下列因素:哪個(gè)團(tuán)隊(duì)擁有該模型、應(yīng)用程序特定部分的用途、以及諸如代碼庫和數(shù)據(jù)庫 schema 之類的物理表現(xiàn)等。將各個(gè)模型嚴(yán)格約束在自己的邊界內(nèi)后,各個(gè)部分就更容易實(shí)現(xiàn)和理解,因?yàn)槲覀冎恍枰紤]每個(gè)部分所屬的一個(gè)有界上下文就夠了。我們不用再因?yàn)槠渌诵孤兜拇a而分散精力或感到困惑。正如 Dan North 所說:“專心構(gòu)建你負(fù)責(zé)的代碼,不用想太多”。

https://www.youtube.com/watch?v=4Y0tOi7QWqM

一個(gè)事件流平臺(tái)可能看起來像這樣:

在平臺(tái)中每個(gè)微服務(wù)都有自己的有界上下文。從技術(shù)角度來看,這可能涉及不同的 API、框架、通信協(xié)議和數(shù)據(jù)存儲(chǔ)等。有些部分遵循請(qǐng)求——響應(yīng)模式,而其他部分則根據(jù)需要解決的問題來使用事件??偠灾?,每個(gè)部分都是一個(gè)單獨(dú)的有界上下文,擁有屬于自己的領(lǐng)域模型,并在該模型、業(yè)務(wù)流程和它與其他部分共享的數(shù)據(jù)之間建立映射。

那么為什么 Kafka 就是事件流平臺(tái)的不二之選呢?

4 Apache Kafka 和領(lǐng)域驅(qū)動(dòng)的微服務(wù)

Apache Kafka 結(jié)合了消息傳遞和存儲(chǔ)能力,使不同的生產(chǎn)者和消費(fèi)者之間能夠完全解耦:

服務(wù)端(Kafka broker、ZooKeeper 和 Confluent Schema 注冊(cè)表)可以與業(yè)務(wù)應(yīng)用之間分離開來。

生產(chǎn)者不知道或不關(guān)心是誰在消費(fèi)它們創(chuàng)造的事件。Kafka 為他們處理背壓、解決可擴(kuò)展性和高可用性需求。

生產(chǎn)者的生產(chǎn)工作不受消費(fèi)者下線影響。

就算新的消費(fèi)者需要從較早的時(shí)間戳開始消費(fèi)事件,它們也可以隨時(shí)添加進(jìn)來。

消費(fèi)者可以以自己的節(jié)奏(批量或?qū)崟r(shí))處理數(shù)據(jù)。

消費(fèi)者可以反復(fù)處理數(shù)據(jù)(例如訓(xùn)練不同的分析模型或從錯(cuò)誤和數(shù)據(jù)損壞中恢復(fù))。

有了這些特性,項(xiàng)目團(tuán)隊(duì)就都能擁有自己的領(lǐng)域了;這些領(lǐng)域可以有不同的職責(zé)、SLA、版本控制和技術(shù)選擇。

這種方法不僅適用于業(yè)務(wù)應(yīng)用,也適用于公司 IT 團(tuán)隊(duì)的運(yùn)營工作;運(yùn)營團(tuán)隊(duì)可以擁有用于內(nèi)部自助服務(wù)的 Kafka 集群。Kafka 集群通?;?PaaS 架構(gòu)部署,例如 Kubernetes 和 Confluent Operator 等。如果使用基于 Confluent Cloud 等托管服務(wù)的云部署方案,則通常不需要此類基礎(chǔ)架構(gòu)團(tuán)隊(duì)。

5 領(lǐng)域模型、有界上下文和通用語言

如上所述,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)的關(guān)鍵元素之一是將業(yè)務(wù)問題分離為許多獨(dú)立的有界上下文的集合。每個(gè)上下文都有一個(gè)領(lǐng)域模型,將所需數(shù)據(jù)完全封裝在軟件里,還包括需要執(zhí)行的業(yè)務(wù)操作以及用于描述這些元素的語言。但是,某個(gè)有界上下文中的領(lǐng)域模型該怎樣與其他上下文中的模型建立聯(lián)系呢?我們?nèi)绾伪WC一個(gè)模型中的更改不會(huì)對(duì)其他領(lǐng)域模型產(chǎn)生負(fù)面影響?

答案就是使用在 DDD 中被稱為反腐層(anti-corruption layer)的方法:反腐層將領(lǐng)域模型中使用的數(shù)據(jù)映射到在各個(gè)微服務(wù)或有界上下文之間傳輸?shù)臄?shù)據(jù)上。這個(gè)模式與具體的實(shí)現(xiàn)無關(guān),這意味著無論你的服務(wù)是通過事件還是通過請(qǐng)求——響應(yīng)協(xié)議通信,都可以使用反腐層。在這兩種通信方式下通常都會(huì)有一種有線格式(可以是用來從 REST 端點(diǎn)返回?cái)?shù)據(jù)的 schema,或是用來描述事件的 schema,例如存儲(chǔ)在 Schema 注冊(cè)表中的 Avro 消息)。

反腐層有兩大職責(zé):

它讓領(lǐng)域模型不受其他模型的更改影響

它封裝了上下文之間的邊界,并描述了它們之間的映射。這種映射既能從技術(shù)意義上描述,例如一條消息中的字段 A 映射到模型中的字段 B;也能基于 DDD 的通用語言描述——將事件 schema 中的對(duì)手(counterparty)映射到領(lǐng)域模型中的客戶(customer)。

每個(gè)有界上下文中的模型都會(huì)進(jìn)化發(fā)展,而團(tuán)隊(duì)在設(shè)計(jì)改進(jìn)模型的過程中,要經(jīng)歷的一項(xiàng)關(guān)鍵步驟就是設(shè)計(jì)將各個(gè)模型連接在一起的接口。要走好這一步,首先應(yīng)該由開發(fā)人員和擁有系統(tǒng)的利益相關(guān)方共同開發(fā)一種通用語言。

6 使用Apache Kafka、Kafka Streams、KSQL和Kafka Connect 將各個(gè)領(lǐng)域連接起來

還有一個(gè)關(guān)鍵要點(diǎn)我們還沒討論過:Apache Kafka 不僅是一個(gè)消息系統(tǒng)或者一個(gè)集成層——它是一個(gè)事件流平臺(tái)。這意味著它不僅負(fù)責(zé)提供用來解耦微服務(wù)的中間件,還允許你在客戶端代碼中執(zhí)行復(fù)雜的數(shù)據(jù)操作,如拆分、連接、過濾和匯總等。這是 Apache Kafka 和傳統(tǒng)中間件之間的另一大區(qū)別所在,正如 ThoughtWorks 所解釋的那樣:

……我們看到一些組織將許多 Kafka 生態(tài)系統(tǒng)組件(例如連接器和流處理器)集中在一起,使用 Kafka 重建了 ESB 這種反模式,而不是讓這些組件與產(chǎn)品或服務(wù)團(tuán)隊(duì)共存。ESB 模式有著很嚴(yán)重的問題,人們將越來越多的邏輯、編排和轉(zhuǎn)換推入集中管理的 ESB 中,不得不愈加依賴中心化的團(tuán)隊(duì)。我們指出這一現(xiàn)象就是想讓人們不要再推進(jìn)這種有缺陷的模式了?!笆褂?Kafka 重建 ESB 反模式”

https://www.thoughtworks.com/radar/techniques/recreating-esb-antipatterns-with-kafka

這一點(diǎn)是很重要的。ESB 之所以會(huì)包含復(fù)雜的邏輯、編排和轉(zhuǎn)換并不是偶然產(chǎn)物,而是因?yàn)槿藗冋跇?gòu)建的業(yè)務(wù)流程需要它們。ThoughtWorks 的觀點(diǎn)并不是說這些過程本身是問題所在,或者沒什么必要,而是說問題出在這些過程被推出了本應(yīng)擁有它們的應(yīng)用所在的邊界,并推入了中心化的基礎(chǔ)架構(gòu)中。這種中心化的基礎(chǔ)架構(gòu)和業(yè)務(wù)邏輯導(dǎo)致軟件愈加脆弱,難以發(fā)展——這正是現(xiàn)代化的敏捷軟件項(xiàng)目最不想看到的結(jié)果。

事件流系統(tǒng)則使用另一種方式處理這個(gè)問題。它們基于啞管道(可高度擴(kuò)展)和智能過濾器構(gòu)建;要注意這些過濾器比以往的設(shè)計(jì)更強(qiáng)大、功能更多。嵌入在微服務(wù)中的過濾器具有現(xiàn)代流處理引擎的所有功能。沒有中心化的邏輯,一切都是完全分散的,這意味著每個(gè)有界上下文都有自己的業(yè)務(wù)邏輯、編排和轉(zhuǎn)換等等。

因此,使用 Kafka 作為中樞系統(tǒng)后,你就可以使用流處理工具提供的更高級(jí)抽象來連接在各個(gè)有界上下文中創(chuàng)建的模型了。

這樣你就可以充分利用 DDD 的所有優(yōu)勢(shì),同時(shí)避免 ESB 導(dǎo)致的種種麻煩——諸如緊密耦合、集中管理整個(gè)業(yè)務(wù)流程等。

具體選擇實(shí)現(xiàn)哪個(gè)微服務(wù)完全取決于團(tuán)隊(duì)的工作需要。你們的微服務(wù)可以使用簡(jiǎn)單的技術(shù)接口,如 REST 或 JMS 這樣只用來通信的接口。你們也可以構(gòu)建真正的事件流式微服務(wù),充分利用流處理的能力來操縱事件數(shù)據(jù)流并將其映射到你們的內(nèi)部模型上。

前面的例子中提到了許多種微服務(wù)。有些情況下會(huì)使用 REST(例如在微服務(wù)和 UI 之間通信),有些則使用 Kafka Streams 或 KSQL 將不同來源的事件連接在一起。還有的情況下會(huì)使用 Kafka Connect 將事件簡(jiǎn)單地推送到數(shù)據(jù)庫中,以便進(jìn)一步操作或直接通過事件源模式使用事件。每個(gè)微服務(wù)都可以選擇自己獨(dú)立的技術(shù)實(shí)現(xiàn),與其他微服務(wù)和它們選擇的技術(shù)無關(guān)。

如何構(gòu)建這樣的系統(tǒng)人們很容易想到使用 REST、gRPC 或其他一些請(qǐng)求——響應(yīng)協(xié)議構(gòu)建分散的事件流微服務(wù)。但對(duì)許多人來說,構(gòu)建一種基于事件的系統(tǒng)更是觀念上的變革。用事件構(gòu)建系統(tǒng)的方式是多種多樣的。它們可以用于“發(fā)后即忘”消息傳輸,也可以用作協(xié)作手段。Ben Stopford 的博客文章“在事件的基礎(chǔ)上構(gòu)建服務(wù)”進(jìn)一步解釋了這些模式。

你還必須決定該如何管理狀態(tài)??梢允褂?Kafka Connect 等技術(shù)在數(shù)據(jù)庫中管理,也可以使用 Kafka Streams API 在托管服務(wù)中管理。關(guān)于構(gòu)建有狀態(tài)事件流的微服務(wù),可以參閱 Ben Stopford 的博客文章“使用 Kafka Streams 和 KSQL 構(gòu)建微服務(wù)生態(tài)系統(tǒng)”。

要從宏觀層面了解如何將 Connect、Kafka Streams 和微服務(wù)組合在一起,可以參閱 Yeva Byzek 的一篇寫得很棒的文章。

https://www.confluent.io/blog/stream-processing-part-1-tutorial-developing-streaming-applications

最后,構(gòu)建微服務(wù)生態(tài)系統(tǒng)只是問題的第一部分。生態(tài)系統(tǒng)構(gòu)建完成后,你需要對(duì)其檢測(cè)、控制和操作。具體內(nèi)容可參閱這篇文章。

https://www.confluent.io/blog/journey-to-event-driven-part-4-four-pillars-of-event-streaming-microservices

還有一件事值得一提,就是 Confluent 的 RBAC 功能;它允許在 Confluent 平臺(tái)上執(zhí)行基于角色的訪問控制。你可以詳細(xì)配置每個(gè)域組可以訪問的資源(如 Kafka 主題、Schema 注冊(cè)表或連接器等)。

只需挑選最適合你的架構(gòu)即可。例如,你可以讓每個(gè) Kafka Connect 群集由負(fù)責(zé)它的領(lǐng)域團(tuán)隊(duì)運(yùn)營,或者把 Kafka Connect 托管為 Kafka 群集的一部分,并允許團(tuán)隊(duì)為其部署連接器。

有這么多工具幫助你使用 DDD 方法構(gòu)建和運(yùn)行基于微服務(wù)的系統(tǒng),我希望你能從中獲益多多。

7 Apache Kafka+領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)=解耦事件流微服務(wù)

雖然有許多方法可以構(gòu)建微服務(wù)架構(gòu),但領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)中描述的方法無疑是最強(qiáng)大的,特別是當(dāng)你構(gòu)建的系統(tǒng)具有復(fù)雜的業(yè)務(wù)領(lǐng)域(例如醫(yī)療保健、金融、保險(xiǎn)、 零售)時(shí)更是如此。

DDD 中的許多設(shè)計(jì)原則都能直接用于事件驅(qū)動(dòng)系統(tǒng),有一些原則本文還沒具體涉及到;我強(qiáng)調(diào)的是最常見的技術(shù)挑戰(zhàn):如何將應(yīng)用分離到各個(gè)有界上下文中,為什么這些上下文的獨(dú)立性如此重要,為什么需要領(lǐng)域模型,以及這些概念與消息傳遞、Apache Kafka 和事件的使用有什么關(guān)系。

在當(dāng)今眾多工具的幫助下,微服務(wù)架構(gòu)得以使用事件流平臺(tái)將各個(gè)微服務(wù)分離開來,并從中獲益匪淺。實(shí)現(xiàn)可以是請(qǐng)求驅(qū)動(dòng)的,可以是簡(jiǎn)單的事件驅(qū)動(dòng)系統(tǒng),也可以是整個(gè)事件流業(yè)務(wù)應(yīng)用。它們還可以是這些概念的某種混合產(chǎn)物。DDD 提供了一套管理各個(gè)部分之間相互作用的基本技術(shù),包括通用語言、有界上下文,schema 和反腐層等。如你所見,事件和消息傳遞是讓這些系統(tǒng)在實(shí)踐中良好運(yùn)行的關(guān)鍵因素。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6389

    瀏覽量

    140055
  • Apache
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    12926
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    150

    瀏覽量

    8103

原文標(biāo)題:為什么 Kafka 會(huì)成為微服務(wù)架構(gòu)的事實(shí)標(biāo)準(zhǔn)?

文章出處:【微信號(hào):infoqchina,微信公眾號(hào):InfoQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    光伏四可裝置軟件系統(tǒng)架構(gòu)微服務(wù)化設(shè)計(jì)與容器化部署方案

    ,某一模塊升級(jí)需整體停機(jī),無法適配光伏場(chǎng)景對(duì)實(shí)時(shí)性與連續(xù)性的要求;物理機(jī)部署模式則導(dǎo)致環(huán)境一致性差,跨場(chǎng)景遷移成本高。為此,基于微服務(wù)化設(shè)計(jì)與容器化部署的軟件架構(gòu)應(yīng)運(yùn)而生,通過“功能解耦、彈性部署、高效
    的頭像 發(fā)表于 03-03 15:47 ?209次閱讀

    Helm包管理與模板化部署實(shí)戰(zhàn)

    直接用kubectl管理K8s資源,10個(gè)微服務(wù)就要維護(hù)幾十個(gè)YAML文件,版本管理靠文件夾命名,回滾靠手動(dòng)替換文件。Helm把一組相關(guān)的K8s資源打包成Chart,支持模板化、版本管理、一鍵部署和回滾,是K8s生態(tài)中事實(shí)上的包管理標(biāo)準(zhǔn)
    的頭像 發(fā)表于 02-26 16:37 ?200次閱讀

    基于OpenTelemetry的全鏈路追蹤微服務(wù)可觀測(cè)性實(shí)踐

    微服務(wù)拆分到第三年,我們的服務(wù)數(shù)量從最初的5個(gè)膨脹到了47個(gè)。一個(gè)用戶下單請(qǐng)求要經(jīng)過API Gateway -> 用戶服務(wù) -> 商品服務(wù) -> 庫存
    的頭像 發(fā)表于 02-26 15:43 ?159次閱讀

    工程師之夜系列分享第三十九篇:Kafka、RocketMQ、JMQ 存儲(chǔ)架構(gòu)深度對(duì)比

    引言 消息隊(duì)列的存儲(chǔ)架構(gòu)是決定其可靠性、吞吐量、延遲性能的核心因素,直接影響業(yè)務(wù)場(chǎng)景適配能力。本文聚焦三款主流消息隊(duì)列 ——Kafka(LinkedIn 開源,側(cè)重高吞吐)、RocketMQ(阿里
    的頭像 發(fā)表于 01-13 16:19 ?186次閱讀
    工程師之夜系列分享第三十九篇:<b class='flag-5'>Kafka</b>、RocketMQ、JMQ 存儲(chǔ)<b class='flag-5'>架構(gòu)</b>深度對(duì)比

    華納云VPS容器服務(wù)網(wǎng)格流量管理:實(shí)現(xiàn)微服務(wù)高效路由

    在云計(jì)算和微服務(wù)架構(gòu)日益普及的今天,華納云香港VPS憑借其優(yōu)越的地緣優(yōu)勢(shì)和網(wǎng)絡(luò)自由,成為眾多企業(yè)部署容器化應(yīng)用的熱門選擇。復(fù)雜的微服務(wù)架構(gòu)
    的頭像 發(fā)表于 10-16 17:09 ?530次閱讀

    基于RFID與微服務(wù)架構(gòu)的智能倉庫管理系統(tǒng):實(shí)現(xiàn)倉儲(chǔ)數(shù)據(jù)的全鏈路精準(zhǔn)采集與管控

    針對(duì)傳統(tǒng)倉儲(chǔ)管理中普遍存在的賬實(shí)不符、流程效率低下及信息孤島等問題,本文介紹一套基于RFID射頻識(shí)別技術(shù)與微服務(wù)軟件架構(gòu)的智能倉庫管理系統(tǒng)。系統(tǒng)通過“一物一碼”的電子身份標(biāo)識(shí),實(shí)現(xiàn)了對(duì)物資從入庫
    的頭像 發(fā)表于 10-13 11:18 ?771次閱讀
    基于RFID與<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的智能倉庫管理系統(tǒng):實(shí)現(xiàn)倉儲(chǔ)數(shù)據(jù)的全鏈路精準(zhǔn)采集與管控

    如何基于Nginx構(gòu)建微服務(wù)網(wǎng)關(guān)

    今天,我將分享我們團(tuán)隊(duì)如何基于Nginx構(gòu)建了一個(gè)日均處理10億+請(qǐng)求的微服務(wù)網(wǎng)關(guān),以及踩過的那些坑。這套方案已經(jīng)穩(wěn)定運(yùn)行2年+,經(jīng)歷過多次大促考驗(yàn)。
    的頭像 發(fā)表于 09-02 16:29 ?826次閱讀

    Jtti海外VPS微服務(wù)架構(gòu)下的日志采集與分析優(yōu)化方案

    隨著跨境業(yè)務(wù)和分布式應(yīng)用的普及,越來越多的企業(yè)在海外VPS構(gòu)建微服務(wù)架構(gòu),以提升系統(tǒng)擴(kuò)展性和靈活性。然而,微服務(wù)化帶來了一個(gè)新的挑戰(zhàn):日志數(shù)據(jù)分散在多個(gè)
    的頭像 發(fā)表于 08-27 17:13 ?572次閱讀

    深入剖析RabbitMQ高可用架構(gòu)設(shè)計(jì)

    微服務(wù)架構(gòu)中,消息隊(duì)列故障導(dǎo)致的系統(tǒng)不可用率高達(dá)27%!如何構(gòu)建一個(gè)真正可靠的消息中間件架構(gòu)?本文將深入剖析RabbitMQ高可用設(shè)計(jì)的核心要點(diǎn)。
    的頭像 發(fā)表于 08-18 11:19 ?958次閱讀

    電商API的微服務(wù)架構(gòu)優(yōu)化策略

    ? 隨著電子商務(wù)的快速發(fā)展,API(應(yīng)用程序編程接口)已成為電商平臺(tái)的核心組件,負(fù)責(zé)連接用戶、商家和后臺(tái)系統(tǒng)。微服務(wù)架構(gòu)通過將應(yīng)用拆分為獨(dú)立、可擴(kuò)展的服務(wù)單元,顯著提升了系統(tǒng)的靈活性和
    的頭像 發(fā)表于 07-23 14:30 ?624次閱讀
    電商API的<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>優(yōu)化策略

    使用NVIDIA GPU加速Apache Spark中Parquet數(shù)據(jù)掃描

    隨著各行各業(yè)的企業(yè)數(shù)據(jù)規(guī)模不斷增長,Apache Parquet 已經(jīng)成為了一種主流數(shù)據(jù)存儲(chǔ)格式。Apache Parquet 是一種列式存儲(chǔ)格式,專為高效的大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)。它按列而非按行
    的頭像 發(fā)表于 07-23 10:52 ?1041次閱讀
    使用NVIDIA GPU加速<b class='flag-5'>Apache</b> Spark中Parquet數(shù)據(jù)掃描

    蔡司“微服務(wù)”——全能在線售后管家,24小時(shí)守護(hù)您的設(shè)備!

    還在為設(shè)備故障煩惱? 急需技術(shù)支援卻找不到人? 想快速獲取用戶手冊(cè)或軟件升級(jí)? 現(xiàn)在 只需微信掃一掃設(shè)備的藍(lán)色標(biāo)簽二維碼 蔡司“微服務(wù)”一鍵觸達(dá)! 9大功能板塊 全方位解決您的售后需求 服務(wù)更高
    發(fā)表于 07-10 16:44 ?1573次閱讀
    蔡司“<b class='flag-5'>微服務(wù)</b>”——全能在線售后管家,24小時(shí)守護(hù)您的設(shè)備!

    Kafka生產(chǎn)環(huán)境應(yīng)用方案

    Apache Kafka作為分布式流處理平臺(tái),在現(xiàn)代大數(shù)據(jù)架構(gòu)中扮演著消息中間件的核心角色。本文將從運(yùn)維工程師的角度,詳細(xì)介紹Kafka在生產(chǎn)環(huán)境中的部署方案、配置優(yōu)化、監(jiān)控運(yùn)維等關(guān)鍵
    的頭像 發(fā)表于 07-09 09:56 ?589次閱讀

    Kafka工作流程及文件存儲(chǔ)機(jī)制

    Kafka 中消息是以 topic 進(jìn)行分類的,生產(chǎn)者生產(chǎn)消息,消費(fèi)者消費(fèi)消息,都是面向 topic 的。
    的頭像 發(fā)表于 05-19 10:14 ?936次閱讀
    <b class='flag-5'>Kafka</b>工作流程及文件存儲(chǔ)機(jī)制

    企業(yè)使用NVIDIA NeMo微服務(wù)構(gòu)建AI智能體平臺(tái)

    已發(fā)布的 NeMo 微服務(wù)可與合作伙伴平臺(tái)集成,作為創(chuàng)建 AI 智能體的構(gòu)建模塊,使用商業(yè)智能與強(qiáng)大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務(wù)。
    的頭像 發(fā)表于 04-27 15:05 ?1288次閱讀