国产精品无码一区二区三区太,亚洲一线产区二线产区区别,欧美A区,人妻jealousvue人妻

×

微服務(wù)與無(wú)服務(wù)器知識(shí)大放送(二)

  • 作者:新網(wǎng)
  • 來(lái)源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-03 13:24:03

本示例中的命令端提供了REST API,可接受通過(guò)HTTP發(fā)送的請(qǐng)求。請(qǐng)求采取命令的形式,可以驅(qū)動(dòng)對(duì)微服務(wù)所擁有的領(lǐng)域數(shù)據(jù)的狀態(tài)更改。簡(jiǎn)單來(lái)說(shuō),對(duì)領(lǐng)域數(shù)據(jù)的任何寫入都將以命令形式從API請(qǐng)求流出,處理導(dǎo)致數(shù)據(jù)庫(kù)發(fā)生更改的操作。

 我們將一個(gè)微服務(wù)分為命令端、查詢端和事件處理器,這三個(gè)部分可以相互獨(dú)立地部署。

<div
命令端
 
5895d477-f76e-4df0-9ab4-6cfe1bce80ce.jpg
本示例中的命令端提供了REST API,可接受通過(guò)HTTP發(fā)送的請(qǐng)求。請(qǐng)求采取命令的形式,可以驅(qū)動(dòng)對(duì)微服務(wù)所擁有的領(lǐng)域數(shù)據(jù)的狀態(tài)更改。簡(jiǎn)單來(lái)說(shuō),對(duì)領(lǐng)域數(shù)據(jù)的任何寫入都將以命令形式從API請(qǐng)求流出,處理導(dǎo)致數(shù)據(jù)庫(kù)發(fā)生更改的操作。
 
命令觸發(fā)操作,操作觸發(fā)領(lǐng)域事件。領(lǐng)域事件保存在事件存儲(chǔ)中,也就是“一個(gè)將數(shù)據(jù)庫(kù)與消息代理相結(jié)合的系統(tǒng)。”最合適入門使用的事件存儲(chǔ)是Eventuate,是由Chris Richardson創(chuàng)建的項(xiàng)目,旨在幫助將CQRS和Event Sourcing應(yīng)用到微服務(wù)。
 
領(lǐng)域事件存儲(chǔ)為按時(shí)間順序排列的一系列事件,附加在日志上。由于每個(gè)命令都生成一個(gè)事件,我們能夠根據(jù)收集的事件歷史記錄重新構(gòu)建當(dāng)前系統(tǒng)的總體狀態(tài)。
 
事件處理器
 
我們要探討的下一個(gè)組件是事件處理器。這個(gè)CQRS組件采用Worker應(yīng)用的形式,負(fù)責(zé)攝取領(lǐng)域事件。事件處理器是無(wú)狀態(tài)的,并偵聽(tīng)來(lái)自事件存儲(chǔ)的消息,對(duì)傳入的事件消息采取操作。
 
事件處理器可通過(guò)很多有用的方式對(duì)新的領(lǐng)域事件作出響應(yīng)。一個(gè)領(lǐng)域事件可以生成多個(gè)事件,這些事件可以發(fā)送到其他微服務(wù)。這就是為什么大多數(shù)微服務(wù)開(kāi)發(fā)人員都被CQRS吸引,因?yàn)橥ㄟ^(guò)這種方法可以發(fā)布和訂閱來(lái)自限界環(huán)境之外的應(yīng)用的領(lǐng)域事件。
 
這種方法為我們提供了一種機(jī)制,可確保領(lǐng)域數(shù)據(jù)的引用完整性。來(lái)自其他微服務(wù)的消息可用來(lái)處理領(lǐng)域事件,從而讓我們能夠維護(hù)分布式系統(tǒng)中與其他記錄的領(lǐng)域數(shù)據(jù)相關(guān)的惱人的外鍵關(guān)系。
 
查詢端
 
事件處理器首要負(fù)責(zé)應(yīng)用可改變領(lǐng)域整合狀態(tài)的領(lǐng)域事件。每個(gè)領(lǐng)域事件都可用來(lái)更新數(shù)據(jù)庫(kù)記錄,形成描述整合的增量實(shí)體化視圖。反過(guò)來(lái),查詢端將提供一個(gè)REST API,允許HTTP客戶端讀取從已處理事件生成的實(shí)體化視圖。
 
查詢端組件中的限制是領(lǐng)域數(shù)據(jù)是只讀的。此系統(tǒng)中的所有狀態(tài)更改都會(huì)從命令端流入,然后形成可在查詢端讀取的實(shí)體化視圖。
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading