<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Redis 如何簡(jiǎn)化實(shí)現(xiàn)微服務(wù)的設(shè)計(jì)模式?

          共 6117字,需瀏覽 13分鐘

           ·

          2021-12-14 14:54

          相關(guān)閱讀:杭州程序員從互聯(lián)網(wǎng)跳央企,曬一天工作和收入,網(wǎng)友:待一年就廢

          作者:jdon | 來(lái)源:jdon.com/55144
          本文討論Redis如何簡(jiǎn)化微服務(wù)設(shè)計(jì)模式的實(shí)現(xiàn):例如有界上下文,異步消息傳遞,基于編排的sagas,事件源,CQRS,遙測(cè)等。
          微服務(wù)架構(gòu)繼續(xù)變得越來(lái)越流行,但是卻被廣泛誤解。盡管大多數(shù)概念上都同意微服務(wù)應(yīng)該是細(xì)粒度的且面向業(yè)務(wù)的,但通常對(duì)于架構(gòu)的權(quán)衡和復(fù)雜性缺乏認(rèn)識(shí)。例如,對(duì)于DevOps架構(gòu)師來(lái)說(shuō),將微服務(wù)與Kubernetes相關(guān)聯(lián)是很常見(jiàn)的事情,而對(duì)于應(yīng)用程序開發(fā)人員來(lái)說(shuō),將實(shí)現(xiàn)歸結(jié)為使用Spring Boot的情況很常見(jiàn)。盡管這些技術(shù)是相關(guān)的,但是容器和開發(fā)框架都無(wú)法獨(dú)自克服微服務(wù)架構(gòu)的陷阱,尤其是在數(shù)據(jù)層。
          Martin Fowler,Chris Richardson以及其他思想領(lǐng)袖早已解決與微服務(wù)架構(gòu)和定義的相關(guān)特性的權(quán)衡,成功指導(dǎo)實(shí)施。包括的原則又:隔離、自主團(tuán)隊(duì)授權(quán)、擁抱最終一致性以及基礎(chǔ)設(shè)施的自動(dòng)化。雖然遵循這些原則可以避免早期采用者和DIY者所遭受的痛苦,但將它們合并到體系結(jié)構(gòu)中的復(fù)雜性擴(kuò)大了對(duì)最佳實(shí)踐和設(shè)計(jì)模式的需求,尤其是隨著實(shí)現(xiàn)擴(kuò)展到數(shù)百個(gè)微服務(wù)時(shí)。
          隨著Redis迅速成為微服務(wù)體系結(jié)構(gòu)的主要組成部分,值得討論如何簡(jiǎn)化設(shè)計(jì)模式的實(shí)現(xiàn)-例如有限上下文,異步消息傳遞,基于編排的sagas,事件源,CQRS,遙測(cè)等。
          設(shè)計(jì)模式:受限上下文/有界上下文/界限上下->域驅(qū)動(dòng)設(shè)計(jì)
          我們的第一個(gè)挑戰(zhàn)是從邏輯上將業(yè)務(wù)劃分為多個(gè)微子域,以便每個(gè)人都可以由一個(gè)授權(quán)的小型自治團(tuán)隊(duì)提供支持。每個(gè)子域的范圍應(yīng)受其團(tuán)隊(duì)管理其支持的微服務(wù)生命周期的能力的約束-從開始到后期制作。這種從臨時(shí)項(xiàng)目到自主域所有權(quán)的轉(zhuǎn)變激發(fā)了對(duì)微服務(wù)設(shè)計(jì)各個(gè)方面的責(zé)任感,并賦予了敏捷的決策能力-從而縮短了產(chǎn)品上市時(shí)間。
          考慮一下前綴“微”,這暗示了在有限的業(yè)務(wù)子域中支持微服務(wù)的整個(gè)生命周期所需的團(tuán)隊(duì)規(guī)模。搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師復(fù)“2T”,送你一份驚喜禮包。
          在我們的模型體系結(jié)構(gòu)的上下文中,讓我們從付款處理域開始,開始組織設(shè)計(jì)過(guò)程,該域包括欺詐檢測(cè),付款,結(jié)算等。由于這個(gè)范圍對(duì)于一個(gè)小型團(tuán)隊(duì)來(lái)說(shuō)可能太復(fù)雜了,因此,我們選擇將其所有權(quán)范圍縮小到欺詐檢測(cè)子域。

          欺詐檢測(cè)由工作流的前三個(gè)微服務(wù)組成-包括數(shù)字身份,統(tǒng)計(jì)分析和基于AI的交易風(fēng)險(xiǎn)評(píng)分。由于他們的范圍可能仍然太小而無(wú)法管理,因此讓我們將欺詐檢測(cè)進(jìn)一步分為兩個(gè)子域-最終看起來(lái)更易于管理。
          在非常高的層次上,我們剛剛遵循的過(guò)程稱為域驅(qū)動(dòng)設(shè)計(jì)(DDD),該過(guò)程受推薦的模式支持,該模式將每個(gè)微服務(wù)的范圍和所有權(quán)聲明綁定到一個(gè)稱為bounded context的業(yè)務(wù)子域。但是請(qǐng)稍等-Redis適合放置在哪里?
          注意,每個(gè)微服務(wù)都有其自己的專用數(shù)據(jù)庫(kù)以進(jìn)行隔離。擁有藍(lán)色邊界上下文的授權(quán)自治團(tuán)隊(duì)選擇RediSearch支持其“ Authenticate Digital Identity”微服務(wù),并選擇RedisBloom支持其“概率欺詐檢測(cè)檢查點(diǎn)”微服務(wù)。同時(shí),擁有紫色邊界上下文的另一個(gè)團(tuán)隊(duì)選擇RedisAI實(shí)時(shí)支持“交易風(fēng)險(xiǎn)評(píng)分”。
          盡管每個(gè)微服務(wù)都需要自己的最佳數(shù)據(jù)模型來(lái)處理其獨(dú)特的數(shù)據(jù)訪問(wèn)模式和SLA,但使用Redis就不必需要評(píng)估、內(nèi)置、管理三個(gè)不同的數(shù)據(jù)庫(kù)。實(shí)際上,使用Redis Enterprise,他們可以在單個(gè)多租戶群集中部署所有三個(gè)Redis數(shù)據(jù)庫(kù),而無(wú)需考慮其發(fā)布周期。 
          設(shè)計(jì)模式:異步消息傳遞->服務(wù)間通信
          既然我們已經(jīng)為每個(gè)微服務(wù)確定了一個(gè)有限的上下文和最佳數(shù)據(jù)模型,那么下一個(gè)挑戰(zhàn)就是在不破壞對(duì)隔離的合規(guī)性的情況下實(shí)現(xiàn)它們之間的通信。這可以通過(guò)擁抱最終的一致性來(lái)解決,后者假定服務(wù)間通信的接收端上的微服務(wù)在出站傳輸期間將不可用,但是,一旦恢復(fù)可用性,便可以使用該消息。

          服務(wù)間通信的推薦模式是使用發(fā)布-訂閱消息代理作為其事件分發(fā)中心的異步消息傳遞。在這種模式下,生產(chǎn)者可以發(fā)布事件,而不必了解是否有任何消費(fèi)者在收聽,并且(以相同的方式)該事件的消費(fèi)者可以在方便時(shí)對(duì)其做出反應(yīng)或完全忽略它。這通常是事件驅(qū)動(dòng)架構(gòu)的基礎(chǔ)。搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師復(fù)“2T”,送你一份驚喜禮包。
          由于我們已經(jīng)選擇Redis作為多個(gè)微服務(wù)的主要數(shù)據(jù)庫(kù),因此我們可以通過(guò)使用Redis Streams來(lái)實(shí)現(xiàn)此模式,從而簡(jiǎn)化架構(gòu)。Redis Streams是不可變的按時(shí)間排序的日志數(shù)據(jù)結(jié)構(gòu),它允許生產(chǎn)者將異步消息發(fā)布到多個(gè)訂閱的使用者。這確保了發(fā)布事件的微服務(wù)將與使用它們的微服務(wù)保持脫鉤狀態(tài),因此不會(huì)對(duì)可用性和發(fā)布周期產(chǎn)生交叉依賴。此外,Redis Streams可以配置為處理不同的交付保證,支持消費(fèi)者群體以及本質(zhì)上類似于Kafka的其他細(xì)微差別-也是跨微服務(wù)架構(gòu)的主要內(nèi)容。
          設(shè)計(jì)模式:基于編排的Saga->分布式事務(wù)
          現(xiàn)在,我們已經(jīng)啟用了服務(wù)間通信,接下來(lái)的挑戰(zhàn)是處理跨越多個(gè)有界上下文的事務(wù),而又不會(huì)破壞對(duì)隔離的合規(guī)性。在過(guò)去,這是很簡(jiǎn)單的實(shí)現(xiàn),因?yàn)槭聞?wù)范圍內(nèi)的所有操作都是針對(duì)單個(gè)RDBMS執(zhí)行的,該RDBMS提供行鎖定,死鎖檢測(cè)和回滾功能。一旦數(shù)據(jù)跨多個(gè)數(shù)據(jù)庫(kù)分布,兩階段提交協(xié)議(2PC)就成為分布式事務(wù)的標(biāo)準(zhǔn)。但是,盡管這兩種方法都可行,但在設(shè)計(jì)時(shí)并沒(méi)有考慮到最終的一致性。
          如果我們假設(shè)在分布式事務(wù)期間將不存在依賴項(xiàng),那么我們還應(yīng)該假設(shè)頻繁的回滾將導(dǎo)致整個(gè)系統(tǒng)的零星不可用性—這既不是云本機(jī),也不是縮短產(chǎn)品上市時(shí)間。
          這可以通過(guò)放寬對(duì)ACID保證的嚴(yán)格要求來(lái)解決,ACID保證已經(jīng)支持了大多數(shù)傳統(tǒng)體系結(jié)構(gòu)數(shù)十年來(lái)的關(guān)系數(shù)據(jù)庫(kù)。盡管關(guān)系數(shù)據(jù)庫(kù)在微服務(wù)體系結(jié)構(gòu)中占有一席之地,但它們的相關(guān)性卻變得越來(lái)越重要。例如,如果不要求引用完整性,那么為什么沒(méi)有授權(quán)的自治團(tuán)隊(duì)會(huì)選擇使用NoSQL數(shù)據(jù)庫(kù)優(yōu)化其微服務(wù),該數(shù)據(jù)庫(kù)專門用于處理其特定的數(shù)據(jù)訪問(wèn)模式和SLA。

          回想一下,我們的付款處理工作流程由多個(gè)微服務(wù)組成,這些微服務(wù)組織到單獨(dú)的有界上下文中,并由Redis(NoSQL數(shù)據(jù)庫(kù))支持。在這種情況下,推薦的處理分布式事務(wù)的模式是基于編排的Saga,它執(zhí)行一系列隔離的本地事務(wù),并發(fā)布事件,從而促進(jìn)工作流階段之間的過(guò)渡。
          參與Saga的每個(gè)微服務(wù)都將僅偵聽其自己的與工作流相關(guān)的事件,該事件將通知它執(zhí)行本地?cái)?shù)據(jù)庫(kù)事務(wù),然后將其自己的事件發(fā)布給消息代理。這種事件驅(qū)動(dòng)的編排可以包括補(bǔ)償用于回滾的微服務(wù)和用于復(fù)雜業(yè)務(wù)流程的決策服務(wù)。
          值得注意的是,在基于編排的Saga中,沒(méi)有中央?yún)f(xié)調(diào)器,這避免了將參與的微服務(wù)的發(fā)布周期耦合在一起。但是,它并不總是正確的解決方案。在某些情況下,強(qiáng)一致性是絕對(duì)必要的,例如帳戶轉(zhuǎn)帳。在這種情況下,基于編排的Saga可能會(huì)更適合,或者在同一有限上下文中依靠微服務(wù)之間的2PC。
          設(shè)計(jì)模式:事務(wù)發(fā)件箱和消息中繼->一致性
          既然我們已經(jīng)設(shè)計(jì)了跨越多個(gè)有界上下文的事務(wù),那么我們的下一個(gè)挑戰(zhàn)是減輕微服務(wù)的數(shù)據(jù)庫(kù)和消息代理之間的不一致風(fēng)險(xiǎn),即使兩者都使用Redis。回想一下,在前兩種設(shè)計(jì)模式中,每個(gè)微服務(wù)都在本地提交到其數(shù)據(jù)庫(kù),然后發(fā)布了一個(gè)事件。如果使用雙寫模式的某些變體來(lái)實(shí)現(xiàn)此目的,則通信可能會(huì)丟失并且分布式事務(wù)可能會(huì)變得孤立(尤其是在云環(huán)境中)。
          可以將代碼復(fù)雜性添加到每個(gè)微服務(wù)中,以處理各種失敗和不一致的情況,但是請(qǐng)考慮將這種工作累加到數(shù)百個(gè)團(tuán)隊(duì)中,并考慮不正確實(shí)施的風(fēng)險(xiǎn)-所有這些都不會(huì)增加業(yè)務(wù)價(jià)值。

          為了避免各種應(yīng)用程序級(jí)別實(shí)現(xiàn)的風(fēng)險(xiǎn)和成本,建議的模式是事務(wù)發(fā)件箱和消息重播。Redis通過(guò)使用Redis Streams作為事務(wù)發(fā)件箱,并使用RedisGears作為消息中繼,簡(jiǎn)化并支持這兩種模式的組合實(shí)現(xiàn),稱為后寫。在Redis中,輔助線程可以偵聽更改的數(shù)據(jù)事件,按時(shí)間順序持久地存儲(chǔ)它們,并在可用時(shí)將其發(fā)布到消息代理??梢酝ㄟ^(guò)基礎(chǔ)架構(gòu)自動(dòng)化在每個(gè)Redis數(shù)據(jù)庫(kù)上統(tǒng)一啟用或升級(jí)此功能。 
          設(shè)計(jì)模式:遙測(cè)->可觀察性
          現(xiàn)在,我們已經(jīng)減輕了主數(shù)據(jù)庫(kù)和輔助數(shù)據(jù)平臺(tái)之間不一致的風(fēng)險(xiǎn),我們的下一個(gè)挑戰(zhàn)是衡量整個(gè)體系結(jié)構(gòu)及其支持的業(yè)務(wù)交易中微服務(wù)的運(yùn)行狀況,即可觀察性。
          觀測(cè)是充滿了數(shù)以百計(jì)的分布式系統(tǒng)中的一個(gè)必須具備的孤立和最終一致的部件。
          搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“2T”,獲取一份驚喜禮包。
          可觀察性建立在三大支柱上:指標(biāo),日志記錄和可追溯性。我們將首先關(guān)注指標(biāo),這些指標(biāo)通常存儲(chǔ)在時(shí)間序列數(shù)據(jù)模型中,該數(shù)據(jù)模型可以處理大量按時(shí)間順序排列的事件和時(shí)間點(diǎn)查詢。最佳地,可以實(shí)時(shí)跟蹤指標(biāo),以便可以檢測(cè)到SLA / SLO異常,并在發(fā)生異常時(shí)可以緩解這些異常。

          為了觀察分布式系統(tǒng)的運(yùn)行狀況,我們首先需要它的數(shù)據(jù)。推薦的模式是遙測(cè),它是從遠(yuǎn)程源自動(dòng)收集和傳輸數(shù)據(jù)以進(jìn)行監(jiān)視。Redis通過(guò)其后寫功能將數(shù)據(jù)無(wú)縫推入另一個(gè)Redis數(shù)據(jù)模型RedisTimeSeries中,從而簡(jiǎn)化了該模式的實(shí)現(xiàn)。注意,使用Redis,我們只需要一個(gè)平臺(tái)即可實(shí)現(xiàn)此模式。
          現(xiàn)在,RedisTimeSeries中提供了指標(biāo),我們可以跨多個(gè)維度實(shí)時(shí)查詢它們-業(yè)務(wù)KPI,應(yīng)用程序SLA / SLO,基礎(chǔ)架構(gòu)利用率等。使用RedisInsight可視化基礎(chǔ)架構(gòu)級(jí)別的指標(biāo)。以及使用用于Grafana的Redis數(shù)據(jù)源可視化業(yè)務(wù)級(jí)別指標(biāo)。
          設(shè)計(jì)模式:事件源->審核和重播
          既然我們已經(jīng)對(duì)度量標(biāo)準(zhǔn)數(shù)據(jù)實(shí)施了遙測(cè),那么我們的下一個(gè)挑戰(zhàn)是啟用可觀察性的其余支柱-日志記錄和可追溯性。與指標(biāo)不同,時(shí)間序列數(shù)據(jù)模型將無(wú)法使日志的固有屬性受益,因?yàn)樗鼈儫o(wú)法匯總或縮減采樣。相反,它們需要一個(gè)不可變且按時(shí)間排序的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)可用于按事件發(fā)生的順序?qū)徍?,恢?fù)或重放事件鏈。
          由于微服務(wù)需要隔離,因此它們不能依賴共享的RDBMS來(lái)維護(hù)捕獲整體中所有事件的事務(wù)日志。因此,推薦的模式是事件源,它在微服務(wù)數(shù)據(jù)庫(kù)級(jí)別的不可變且按時(shí)間排序的日志中記錄每個(gè)更改的數(shù)據(jù)事件。這種模式在大多數(shù)事件驅(qū)動(dòng)的體系結(jié)構(gòu)中很常見(jiàn)。

          通常使用消息代理和事件存儲(chǔ)來(lái)實(shí)現(xiàn)事件源?;叵胍幌?,我們已經(jīng)實(shí)現(xiàn)了使用RedisGears捕獲更改數(shù)據(jù)事件并將其存儲(chǔ)在Redis Streams中的模式,Redis Streams是一個(gè)不可變的按時(shí)間順序排列的日志數(shù)據(jù)結(jié)構(gòu)。因此,Redis可用作數(shù)據(jù)庫(kù),消息代理和事件存儲(chǔ)。
          Redis Streams還可以通過(guò)允許外部進(jìn)程作為隔離的消費(fèi)者組訂閱其事件流,從而超出單個(gè)微服務(wù)的范圍來(lái)簡(jiǎn)化事件源。這允許在業(yè)務(wù)流程,域甚至架構(gòu)級(jí)別進(jìn)行觀察。例如,工作流仲裁器或系統(tǒng)范圍的分析平臺(tái)。
          現(xiàn)在,我們已經(jīng)在Redis Streams中捕獲了更改數(shù)據(jù)事件,我們可以使用可觀察性的不同過(guò)濾器(微服務(wù)ID,事務(wù)關(guān)聯(lián)ID等)以本地方式可視化它們。

          設(shè)計(jì)模式:命令查詢責(zé)任隔離(CQRS)->性能

          請(qǐng)注意,當(dāng)我們定義與欺詐相關(guān)的有界上下文時(shí),我們省去了付款處理工作流程的最后階段。這是因?yàn)槠涫跈?quán)的自治團(tuán)隊(duì)選擇了非Redis數(shù)據(jù)庫(kù)來(lái)支持其微服務(wù)。

          因此,現(xiàn)在讓我們假設(shè)“批準(zhǔn)| 基于磁盤的數(shù)據(jù)庫(kù)支持“拒絕付款”微服務(wù),該數(shù)據(jù)庫(kù)并未針對(duì)查詢性能進(jìn)行優(yōu)化。由于它大概具有強(qiáng)大的耐用性保證,因此它是記錄保存的合理選擇-但是,如果其有限上下文還包含需要此數(shù)據(jù)進(jìn)行查詢的微服務(wù),該怎么辦。這意味著我們的下一個(gè)挑戰(zhàn)是在Redis不是記錄系統(tǒng)時(shí)優(yōu)化查詢性能。

          推薦的模式是CQRS,它將數(shù)據(jù)集的寫(命令)和讀(查詢)責(zé)任分開。通過(guò)使用單獨(dú)的數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)CQRS,可以優(yōu)化數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)模型,以適應(yīng)隔離區(qū)兩側(cè)的數(shù)據(jù)訪問(wèn)模式及其各自的SLA。由于我們的目標(biāo)是優(yōu)化性能,因此數(shù)據(jù)復(fù)制的方向通常會(huì)從基于磁盤的數(shù)據(jù)庫(kù)(例如MongoDB,Cassandra,RDBMS等)導(dǎo)入Redis。
          這就是要抓到的地方–要實(shí)現(xiàn)這種模式,我們將需要解決近實(shí)時(shí)連續(xù)數(shù)據(jù)復(fù)制問(wèn)題,保持異構(gòu)數(shù)據(jù)庫(kù)之間最終的一致性,并轉(zhuǎn)換數(shù)據(jù)以避免Command和Query數(shù)據(jù)結(jié)構(gòu)之間的阻抗不匹配。這聽起來(lái)應(yīng)該很熟悉,因?yàn)槲覀兪窃赗edis是源數(shù)據(jù)庫(kù)時(shí)執(zhí)行此操作的-回憶事務(wù)發(fā)件箱和消息中繼模式。但是,由于在這種情況下,Redis是目標(biāo),而其他大多數(shù)數(shù)據(jù)庫(kù)都不支持后寫操作,因此我們需要外部實(shí)現(xiàn)來(lái)復(fù)制更改后的數(shù)據(jù)事件。
          在這種情況下,我們可以通過(guò)使用可以與Command和Query數(shù)據(jù)庫(kù)集成的Change Data Capture(CDC)框架來(lái)簡(jiǎn)化CQRS的實(shí)現(xiàn)。CDC框架通常使用事務(wù)日志拖尾或輪詢發(fā)布者模式來(lái)掃描Command數(shù)據(jù)庫(kù)上的更改數(shù)據(jù)事件,并將它們作為轉(zhuǎn)換后的有效負(fù)載復(fù)制到Query數(shù)據(jù)庫(kù)。請(qǐng)注意,這與在緩存旁模式中使用Redis有何不同,因?yàn)樗粫?huì)在微服務(wù)級(jí)別耦合數(shù)據(jù)庫(kù)—保持隔離。
          設(shè)計(jì)模式:共享數(shù)據(jù)->可重用性
          既然我們已經(jīng)解決了在Redis不在記錄系統(tǒng)中時(shí)優(yōu)化性能的問(wèn)題,那么我們的下一個(gè)挑戰(zhàn)是處理微服務(wù)之間的共享數(shù)據(jù),這些服務(wù)由不同的受限上下文或微服務(wù)體系結(jié)構(gòu)之外的數(shù)據(jù)庫(kù)分隔。
          后者的一個(gè)真實(shí)示例是一個(gè)扼殺程序從單片架構(gòu)遷移到微服務(wù)架構(gòu)。在這種情況下,作為混合云部署的一部分,微服務(wù)的數(shù)據(jù)庫(kù)可能依賴于外部記錄系統(tǒng)多年,甚至無(wú)限期依賴。當(dāng)我們引入CQRS模式時(shí),我們實(shí)際上已經(jīng)解決了這個(gè)問(wèn)題,但是讓我們擴(kuò)展問(wèn)題說(shuō)明,使其包含共享相同數(shù)據(jù)和數(shù)據(jù)訪問(wèn)模式的微服務(wù)。

          在這種情況下,以下是一些適用的模式,其中Redis簡(jiǎn)化了實(shí)現(xiàn):

          相關(guān)閱讀:2T架構(gòu)師學(xué)習(xí)資料干貨分享

          這是要抓住的地方-盡管這些模式解決了一些有限上下文之間的共享數(shù)據(jù),但它們都無(wú)法在全球范圍內(nèi)擴(kuò)展。搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師復(fù)“2T”,送你一份驚喜禮包。

          對(duì)于全局?jǐn)?shù)據(jù),建議的模式是API網(wǎng)關(guān)的隔離數(shù)據(jù)庫(kù)。由于該數(shù)據(jù)庫(kù)可能會(huì)被流過(guò)體系結(jié)構(gòu)的每個(gè)事務(wù)訪問(wèn),因此我們必須將業(yè)務(wù)連續(xù)性,可伸縮性和性能視為選擇該數(shù)據(jù)庫(kù)的關(guān)鍵成功標(biāo)準(zhǔn)。幸運(yùn)的是,這是Redis Enterprise在數(shù)千個(gè)生產(chǎn)部署中大放異彩的地方。

          Redis Enterprise是關(guān)鍵任務(wù)會(huì)話數(shù)據(jù),身份驗(yàn)證令牌和臨時(shí)數(shù)據(jù)存儲(chǔ)的事實(shí)上的標(biāo)準(zhǔn),具有亞毫秒級(jí)的規(guī)模性能,并具有Active-Active跨集群復(fù)制和多可用性區(qū)域部署的99.999%SLA。

          1、985副教授工資曝光

          2、心態(tài)崩了!稅前2萬(wàn)4,到手1萬(wàn)4,年終獎(jiǎng)扣稅方式1月1日起施行~

          3、雷軍做程序員時(shí)寫的博客,很強(qiáng)大!

          4、人臉識(shí)別的時(shí)候,一定要穿上衣服?。?/a>

          5、清華大學(xué):2021 元宇宙研究報(bào)告!

          6、績(jī)效被打3.25B,員工將支付寶告上了法院,判了

          瀏覽 27
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  18禁网站在线 | 国产乱╳╳╳╳性视频大全 | 又污又黄的网站 | 婷婷导航 | 黄色播放a视频 |