前言
在上一篇文章中,我們說到了異步消息通訊,下面這篇文章呢,大部分內(nèi)容是翻譯來自于這篇微軟的文章,所以其內(nèi)容還是具有一定的理論指導意義的。
當我們跨多個微服務進行內(nèi)部通訊的時候,異步消息和事件驅(qū)動至關重要。我們可能需要在不同的邊界上下文中進行域模型的更新。
我們舉個例子,比如 eShop 這個項目中,Ording 服務在下單的時候要和 Catelog 服務進行通訊進行庫存的扣減操作,這個時候我們就需要一種方式來做這個事情,并且能夠在發(fā)生故障的時候也能正常工作,也就說需要進行基于異步消息和最終一致性的通訊方式。
當使用基于消息的通訊方式的時候,進程中是采用的異步的方式通訊的??蛻舳讼蚰硞€服務發(fā)送消息,如果這個消息需要回復,那么另一個服務會向客戶端發(fā)送一個不同的消息,并且客戶端會認為該消息不會立即被接收到,并且不存在響應,這就是一種基于消息的通訊方式。
消息由標題(name 或者 title)和內(nèi)容(Body)共同構成。消息通常會通過一些異步協(xié)議進行發(fā)送(如AMQP,kafka協(xié)議)。
異步消息通訊有兩種:一種是單接收者(端到端),另外一種是多接收者(廣播)。
如果有同學對消息隊列比較了解的話,這就是消息隊列的兩種典型使用方式。
基于消息的單接收者
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26