第一階段:控制邏輯和業務邏輯耦合
服務器
此方式耦合嚴重,不得不在業務邏輯中加入網絡控制邏輯代碼網絡
以下:
框架
控制邏輯和業務邏輯徹底耦合在了一塊兒,使得業務代碼凌亂不堪,代碼難以理解和維護ide
第二階段:公共庫
微服務
把控制邏輯所有集中在一塊兒組成一個公共的工具包,這樣就能夠把網絡控制邏輯和業務邏輯分開,保證業務邏輯的清晰和明確,這些公共庫如Spring Cloud的Netflix組件。工具
公共庫的好處:spa
公共庫的缺點:操作系統
第三階段:代理
代理
公共庫和業務代碼不是部署在一塊兒了,而是單獨部署一個代理服務,由代理服務去包含網絡控制邏輯,這樣就徹底和應用解耦,如Nginx、Apache等HTTP反向代理。進程
可是這些Proxy的功能很是簡陋,好比服務發現甚至是經過配置文件來實現。功能不夠,可是思路和想法頗有參考意義:客戶端和服務器端應該隔離,部分功能下沉到中間層來實現請求轉發。Proxy模式的探索爲往後Service Mesh的出現奠基了基礎。
第四階段:邊車模式(sidecar)
什麼是邊車?
維基百科定義:一個單輪的工具附着在自行車上共同組成了一個三輪的交通工具
在業務旁邊部署一個Sidecar,由這個Sidecar來處理全部的網絡請求,處理完成以後再把請求轉發給應用自己
第五階段:Service Mesh
一個pod由應用程序和Sidecar組成
一個系統由不少微服務組成,而每一個微服務都伴隨這一個Sidecar,這些Sidecar組合起來一個網絡就是service mesh