【參考:https://www.jianshu.com/p/7293b148028f】
應用微服務化之後,首先遇到的第一個問題就是服務發現問題,一個微服務如何發現其他微服務呢?
最簡單的方式就是每個微服務裡面配置其他微服務的位址,但是當微服務數量衆多的時候,這樣做明顯不現實。是以需要使用到微服務架構中的一個最重要的元件:服務注冊中心,所有服務都注冊到服務注冊中心,同時也可以從服務注冊中心擷取目前可用的服務清單:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SYiF2NiZ2N1YzNwcDZhlTM0kTY3AjYhdDOxQjZhJzMk9CXwMzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLzM3Lc9CX6MHc0RHaiojIsJye.png)
接着需要解決微服務分布式部署帶來的第二個問題:服務配置管理的問題。當服務數量超過一定程度之後,如果需要在每個服務裡面分别維護每一個服務的配置檔案,運維人員估計要哭了。那麼,就需要用到微服務架構裡面第二個重要的元件:配置中心,微服務架構就變成下面這樣了:
以上應用内部的服務治理,當用戶端或外部應用調用服務的時候怎麼處理呢?
服務A可能有多個節點,服務A、服務B和服務C的服務位址都不同,服務授權驗證在哪裡做?
這時,就需要使用到服務網關提供統一的服務入口,最終形成如下的典型微服務架構:
上面是一個典型的微服務架構,當然微服務的服務治理還涉及很多内容,比如:
通過熔斷、限流等機制保證高可用;
微服務之間調用的負載均衡;
分布式事務(2PC、3PC、TCC、LCN等);
服務調用鍊跟蹤等等。
作者:centychen
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
[ 版權聲明 ]:
本文所有權歸作者本人,文中參考的部分已經做了标記!
商業用途轉載請聯系作者授權!
非商業用途轉載,請标明本文連結及出處!