單體、SOA、微服務

單體架構-》SOA-》微服務:html

1. 從三層到mvc單體架構(特色:用戶少併發少,併發增長),便於管理在一個項目中,但項目愈來愈大知足不了需求過於臃腫、不能拓展(有些模塊須要進行擴展有些無需擴展)、資源不能分離。
 
2.SOA和微服務都是架構思想,基於SOA的架構思想將重複公用的功能抽取爲組件,以服務的方式給系統提供服務,系統與服務之間採用webservice、rpc等方式進行通訊,ESB企業服務總線做爲項目與服務之間通訊的橋樑。EAI是什麼,各個系統間互聯,相互傳數據的解決方案,原來經過socket通信方式,只能在同一平臺上進行通信。基於中間系統,爲了能知足跨平臺的通信,出現了webserver鬆耦合的通信方式,數據經過xml傳輸。ESB包含了EAI的功能, 簡單 來講 ESB 就是一根管道,用來鏈接各個服務節點。爲了集 成不一樣系統,不一樣協議的服務,ESB 作了消息的轉化解釋和路由工做,讓不一樣的服務互聯互通。與API網關統一層面的東西,在微服務思想中叫API網關,SOA思想中是ESB,在以前是EAI。
 
3. 前端代碼和後臺得分離,將後臺代碼分佈在多個服務器上,負載均衡,緩解併發壓力。慢慢對於模塊中不一樣的需求,某個模塊須要更多的服務器有些或許對性能要求不高,從而產生了微服務化,將原有的業務拆成獨立的工程, 獨立部署,靈活擴展。微服務是以每個獨立組件(例如用戶服務,商品服務)爲單位進行部署,每一個模塊爲一個獨立模塊進行部署,經過調用相關的接口來實現交互。 微服務是協做小而自治的服務:小專一於一件事,自治每一個服務獨立部署不受影響,協做每一個服務是個體組成了總體相互交互溝通。微服務架構(Microservices Architecture)是將系統拆分爲多個應用服務。應用服務實現具體的業務功能,單獨部署維護。應用服務之間經過輕量級通訊框架進行,而且支持應用服務用不一樣技術或者平臺實現。微服務架構是SOA架構設計思想另外一種實現方式。SOA 是粗粒度,鬆耦合的服務架構,異構系統間的服務通信。微服務是按業務邊界作細粒度的拆分和部署。
  
   API 網關是什麼?系統暴露在外面的一個惟一入口,像一個公司的門衛承擔着尋址、限制進入、安全檢查、位置引導等功能。2個系統間或者服務端與客戶端間通信,加上一個中間件協做API調用,那就是API網關。同時API網關上能夠實現協議轉換,負載均衡,請求路由,流量控制等,若涉及到對系統的請求,而且可以從業務中抽離出來的功能,都有可能在網關上實現。
  Ocelot是一個用.NET Core實現而且開源的API網關。實現了路由、請求聚合、服務發現、認證、鑑權、限流熔斷、並內置了負載均衡器與Service Fabric、Butterfly Tracing集成。下圖網上找的說的蠻清楚:
 

 

  涉及受權的將集成Identity Server。前端

 

  集羣: web

  增長consul:api

詳細參考這篇文章https://www.cnblogs.com/jesse2013/p/net-core-apigateway-ocelot-docs.html安全

   以上是一個負載均衡的API網關,可是不能自動發現服務要手動進行配置,孕育而生的consul,服務發現。如何服務發現呢?服務器

 簡單理解了一下:consul是個集羣,有consul server leader和consul server follower服務器,而後在有不少服務,如服務A,B,C等,在他們的服務器上會安裝consul client,服務註冊到consul client上,當有個服務要調用其餘服務時,如服務D要調用服務B,服務D告訴服務器上的consul client,consul client通知consul server查找服務B的信息,服務D最終調用了服務B。架構

 網上有文章如何實現以下地址:併發

https://www.cnblogs.com/ibeisha/p/ocelot.htmlmvc

相關文章
相關標籤/搜索