iT邦幫忙

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

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

Day 3 微服務的城門--API gateway

來介紹微服務的基礎建設 --API Gateway

想像我們現在有了 OrderService CustomerSerivce PayService , client端直接使用restful web api與三個service溝通,每個服務都會相依於前一個服務的結果, 相較於傳統monolithic現在client需要完成一次交易除了要發三個request 還要加上中間等到response的時間….(用戶: 你們新系統怎麼比以前還慢啊)
https://ithelp.ithome.com.tw/upload/images/20171222/20107867KsZvXlJkG4.png

又另外一個狀況發生, 因為過載或是服務故障,OrderService1出了問題,好險我們有微服務,趕快啟動一個OrderService2來取代, 突然發現我們的client只認得OrderService1,糟糕了………難不成我們需要每個服務掛掉啟動都通知用戶端………(用戶:你們系統好不穩喔)
https://ithelp.ithome.com.tw/upload/images/20171222/20107867NIiIvdN2dd.png

為了不客戶端直接跟子系統溝通, 或者說暴露太多的介面給客戶端, 一般會應用Façade pattern將子系統們封裝起來, 對client只暴露必要的介面, 降低client端與服務端的直接掛鉤, 在微服務的API應用上會給一個名詞 "API gateway"

我們來看看微軟電子書提供漂漂亮亮的示意圖
https://docs.microsoft.com/zh-tw/dotnet/standard/microservices-architecture/architect-microservice-container-applications/media/image13.png

藉由API Gateway, 讓client不會依賴低層的服務本身,抽換服務實體也不會影響client與API gateway間的通信,也可以在API Gateway後封裝其他功能像是load balancer, service discovery, service registry等


上一篇
Day 2 Microservice導覽
下一篇
Day 4 Service discovery 和 Service registry
系列文
.Net微服務輕旅行30天30

尚未有邦友留言

立即登入留言