一、微服務架構圖:
二、技術介紹:(技術選型隨著**的編寫會完成)
關於技術選型,我盜了一張微服務技術棧的圖,如下:原文:
我將會用到上圖中的如下技術
三、基本流程:
各個服務啟動的時候,都會將自己的資訊註冊到consulclient,consulclient將註冊資訊提交給consulserver,consulserver將資訊提交給consulleader(也是consulserver),consulleader將自身的資料複製給其他的consulserver,服務註冊完成!!!gatewayx-server通過myservicea-client.jar來訪問myservicea-server的具體邏輯
首先從consulserver上拉取可用的myservicea-server的伺服器,服務發現完成!!!根據負載均衡策略選出其中乙個伺服器來進行訪問
訪問的過程中通過熔斷器來進行超時容錯處理
gatewayx-server通過myserviceb-client.jar來訪問myserviceb-server的具體邏輯同3
說明:如果僅僅只是前邊這樣的流程或者以前邊這樣的流程為基礎並且myserviceb-server要呼叫myservicea-server,那麼上圖中的myserviceb-server中的整個myservicea-client.jar可以去掉,原因是gatewayx-server已經引入了myservicea-client.jar。
如果不是上邊的流程,只是單純的myserviceb-server要訪問myservicea-server,那麼需要引入myservicea-client.jar。
注意:對於服務發現而言,consulserver會通過gossip協議將伺服器資料廣播給各個本地consul agent(通常是consulclient),所以我們不需要做本地快取,當被呼叫服務的伺服器列表發生改變時,會馬上廣播給consulclient。
微服務之springcloud
分布式架構的概念 多個子模組相互協作才能完成業務流程,系統之間需要進行通訊。優點 1 把模組拆分,使用介面通訊,降低模組之間的耦合度。2 把專案拆分成若干個子專案,不同團隊負責不同子專案。3 增加功能時只需要再增加子專案,呼叫其他系統的介面 4 可以靈活進行分布式部署 缺點 1 系統之間互動需要使用...
SpringCloud微服務之 Ribbon
ribbon簡介 需要解決的問題 如何在配置eureka client註冊中心時不去硬編碼eureka server的位址?在微服務不同模組間進行通訊時,如何不去硬編碼服務提供者的位址?當部署多個相同微服務時,如何實現請求時的負載均衡?實現負載均衡方式1 通過伺服器端實現負載均衡 nginx rib...
SpringCloud微服務之OpenFeign
在之前進行微服務的呼叫用的是ribbon resttemplate,就像這樣 這樣呼叫微服務是更偏向面向restfull風格,但偏離了面向介面程式設計 使用openfeign,openfeign底層還是用的ribbon。新增openfeign依賴 org.springframework.cloudg...