前言

在上一篇文章中,我們說到了異步消息通訊,下面這篇文章呢,大部分內(nèi)容是翻譯來自于這篇微軟的文章,所以其內(nèi)容還是具有一定的理論指導(dǎo)意義的。

當(dāng)我們跨多個微服務(wù)進(jìn)行內(nèi)部通訊的時候,異步消息和事件驅(qū)動至關(guān)重要。我們可能需要在不同的邊界上下文中進(jìn)行域模型的更新。
我們舉個例子,比如 eShop 這個項(xiàng)目中,Ording 服務(wù)在下單的時候要和 Catelog 服務(wù)進(jìn)行通訊進(jìn)行庫存的扣減操作,這個時候我們就需要一種方式來做這個事情,并且能夠在發(fā)生故障的時候也能正常工作,也就說需要進(jìn)行基于異步消息和最終一致性的通訊方式。

當(dāng)使用基于消息的通訊方式的時候,進(jìn)程中是采用的異步的方式通訊的。客戶端向某個服務(wù)發(fā)送消息,如果這個消息需要回復(fù),那么另一個服務(wù)會向客戶端發(fā)送一個不同的消息,并且客戶端會認(rèn)為該消息不會立即被接收到,并且不存在響應(yīng),這就是一種基于消息的通訊方式。

消息由標(biāo)題(name 或者 title)和內(nèi)容(Body)共同構(gòu)成。消息通常會通過一些異步協(xié)議進(jìn)行發(fā)送(如AMQP,kafka協(xié)議)。

異步消息通訊有兩種:一種是單接收者(端到端),另外一種是多接收者(廣播)。

如果有同學(xué)對消息隊(duì)列比較了解的話,這就是消息隊(duì)列的兩種典型使用方式。

基于消息的單接收者

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式