詳細(xì)介紹:
華翔云語(yǔ)電銷系統(tǒng)辦理
適用于教育,房產(chǎn),代理記賬,裝修,增值應(yīng)有盡有,029,外顯手機(jī)號(hào)等多種線路
更改事件:從數(shù)據(jù)庫(kù)生成的事件,指示狀態(tài)轉(zhuǎn)換。這些事件是更改數(shù)據(jù)捕獲所關(guān)心的。
事件 streamer 是耐用的、持久的、容錯(cuò)的,不受消費(fèi)者干預(yù)。在這種情況下,處理器是 dumb 類型(從某種意義上說(shuō),它僅充當(dāng)消息路由器),并且客戶端 / 服務(wù)擁有以域?yàn)橹行牡?,?fù)責(zé) 轉(zhuǎn)儲(chǔ)處理器與活躍客戶端 的邏輯。這樣就避免了復(fù)雜的集成平臺(tái),例如傳統(tǒng) SOA 設(shè)計(jì)中使用的 ESB。
圖:微服務(wù)設(shè)計(jì)中的事件
微服務(wù)原理——智能消費(fèi)者與啞管道
微服務(wù)社區(qū)提出了智能端點(diǎn)和啞管道的理念。Martin Fowler 是他稱為微服務(wù)通信的智能端點(diǎn)和啞管道的擁護(hù)者。統(tǒng)治 SOA 領(lǐng)域的 ESB 存在與復(fù)雜性、成本和故障排除相關(guān)的諸多問(wèn)題。
異步通信協(xié)議
MQTT——消息隊(duì)列遙測(cè)傳輸(MQTT)是一項(xiàng)基于發(fā)布 / 訂閱的輕量級(jí)消息傳遞協(xié)議 ISO 標(biāo)準(zhǔn),已在物聯(lián)網(wǎng)中廣泛使用。
AMQP——高級(jí)消息隊(duì)列協(xié)議(AMQP)是一項(xiàng)開(kāi)放標(biāo)準(zhǔn)應(yīng)用程序?qū)訁f(xié)議,用于面向消息的中間件。
STOMP——簡(jiǎn)單文本定向消息傳遞協(xié)議(STOMP)是 HTTP 上基于文本的協(xié)議,用于在服務(wù)之間交換數(shù)據(jù)。
通用消息 / 流平臺(tái)
ActiveMQ
Kafka
RabbitMQ
Redis Streams
評(píng)估標(biāo)準(zhǔn)的一些常見(jiàn)基準(zhǔn)包括可用性、持久性 / 耐用性、耐用性、推 / 拉模型、可伸縮性和消費(fèi)者能力。
微服務(wù)設(shè)計(jì)模式
微服務(wù)建立在獨(dú)立和自治服務(wù)、可伸縮性、低耦合 + 高內(nèi)聚和容錯(cuò)性等原則上。這些原則會(huì)帶來(lái)許多挑戰(zhàn),包括復(fù)雜的管理和配置需求。微服務(wù)設(shè)計(jì)模式的目的是在給定的上下文中描述問(wèn)題的可重用解決方案。我們將探討這些模式如何應(yīng)對(duì)挑戰(zhàn),以提供經(jīng)過(guò)驗(yàn)證的解決方案來(lái)打造更高效的微服務(wù)架構(gòu)。
Saga 模式——跨多個(gè)服務(wù)維護(hù)原子性
單個(gè)事務(wù)可能會(huì)跨越多個(gè)服務(wù)。例如,在電子商務(wù)應(yīng)用程序中,新訂單(與訂單服務(wù)鏈接)不應(yīng)超過(guò)客戶信用額度(與客戶服務(wù)鏈接),并且貨品(與庫(kù)存服務(wù)鏈接)應(yīng)處于可用狀態(tài)。這個(gè)事務(wù)根本不能使用本地 ACID 事務(wù)。
一個(gè) saga 是一系列本地事務(wù),這些事務(wù)可更新各個(gè)服務(wù)并發(fā)布一個(gè)消息 / 事件以觸發(fā)下一個(gè)本地事務(wù)。有任何本地事務(wù)失敗的情況下,saga 會(huì)執(zhí)行一系列 補(bǔ)償事務(wù),以回退先前的本地事務(wù)所做的更改,從而保持 原子性。
基于編舞(Choreography)的 saga——參與者在沒(méi)有中心化控制點(diǎn)的情況下交換 事件。
基于編排的 saga——一個(gè)中心化控制器告訴 saga 參與者要執(zhí)行哪些本地事務(wù)。
在這兩種模式之間具體選擇哪一種,取決于工作流程的復(fù)雜性、參與者數(shù)量、耦合水平以及其他因素。