iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
0
Software Development

.Net微服務輕旅行30天系列 第 7

Day 7 微服務之間的解耦與調用 (2 )非同步與一對多

  • 分享至 

  • xImage
  •  

另一個使用非同步通訊的好處是可以進行一對多的通訊,假設有一個Product service會對後續的Category service和Inventory service要資料,以http方式,會依序發request到Category service-->接到response-->發request給Inventory service-->接到response, 雖然Category和Inventory service之間並無依賴關係,但仍要等待response才能進行下一個request, 透過一對多(pub/sub)的通訊方式,我們可以從request/response的長鍊解放出來, 變成併發(concurrency)和併行(parallel),有效的縮短整體的反應時間。
https://ithelp.ithome.com.tw/upload/images/20171227/20107867ZuSbBsYcZE.png

微服務常見的非同步通訊技術會使用Message broker,舉例來說像是RabbitMQ、Kafka、Azure Service bus等。
sender/producer將message寄送到RabbitMQ的Message queue,然後receiver/consumer持續監聽是否有它該接收的message,而將message從Message queue取出的行為稱為consume(消費一個message)

https://ithelp.ithome.com.tw/upload/images/20171227/20107867EQkdqbFGDa.png

從wiki上來看,Message broker可以提供的功能有:

  • 不同Application間的通訊
  • 將收到的message轉送至一個或多個指定的目的地
  • 轉換message的原有格式到新的格式
  • 將一個message拆分成多個messages在寄到指定的目的地,或將多個收到的message組合成一個message回傳給
  • 觸發error或是events
  • 藉由與外部的repository的交互作用,在現有的message上再擴張資料或是儲存message於外部的repository

上一篇
Day 6 微服務之間的解耦與調用 (1)
下一篇
Day 8 微服務之間的解耦與調用 (3) 交易與資料一致性
系列文
.Net微服務輕旅行30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言