前言
在上一篇文章中,我們說到了異步消息通訊,下面這篇文章呢,大部分內(nèi)容是翻譯來自于這篇微軟的文章,所以其內(nèi)容還是具有一定的理論指導(dǎo)意義的。
當(dāng)我們跨多個微服務(wù)進(jìn)行內(nèi)部通訊的時候,異步消息和事件驅(qū)動至關(guān)重要。我們可能需要在不同的邊界上下文中進(jìn)行域模型的更新。
我們舉個例子,比如 eShop 這個項目中,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é)對消息隊列比較了解的話,這就是消息隊列的兩種典型使用方式。
基于消息的單接收者
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26