1. 程式人生 > >微服務理論與實踐(五)-微服務之間的互動

微服務理論與實踐(五)-微服務之間的互動

Microservice架構模式中的“開”是各個服務的內部實現,而其中的“閉”則是各個服務之間相互溝通的方式

微服務必須使用程序間通訊機制來互動。微服務架構有兩類IPC機制可選,非同步訊息機制和同步請求/響應機制。當設計服務的通訊模式時,需要考慮幾個問題:服務如何互動,每個服務如何標識API,如何升級API,以及如何處理部分失敗。


1. API GateWay 模式

1.1 背景

 當決定將應用當作成一組微服務時,需要決定應用客戶端如何與服務端互動。方式有兩種:

(1)客戶端與服務端直接通訊

(2)採用API Gateway,客戶端與API Gateway互動,API Gateway封裝具體的服務細節,並提供API給各個客戶端。

1.2客戶端與服務端直接通訊

   一個客戶端可以直接給多個微服務中的任何一個發起請求。每一個微服務都會有一個對外服務端。這個URL可能會對映到微服務的負載均衡上,它再轉發請求道具體的節點上。

  缺點:

l  客戶端的需求量與微服務暴露的細粒度的API數量不匹配,客戶端需要發起多個請求才能獲取需與的完整資料。

l  客戶端請求的微服務的協議可能不是web友好型的,例如微服務是RPC或AMQP協議的,他們都不是web友好型的

l  很難重構微服務

1.3 API Gateway  

APIGateway是一個伺服器,也是進入系統的唯一節點。API Gateway封裝系統內部的架構,對每個客戶端提供API。

1.3.1 API Gateway的目標

 支援API介面動態釋出及運營,包括但不限於:

(1)安全認證

a. 應用申請稽核通過後生成公鑰,開放平臺需提供支援分散式系統的金鑰管理

服務可設定為兩個安全等級:需授權訪問和無需授權訪問(後者即任意客戶端都可以發起呼叫),預設所有API都需授權訪問。

b. 非正常狀態(禁用、停用、黑名單等)的應用直接拋異常不允許訪問——熔斷機制

c. 呼叫次數、呼叫頻率、併發數可執行時控制,避免某請求量過大影響其他應用的呼叫。

d. 可對某個應用某個API設定強制熔斷,所有請求無視閥值直接丟擲異常。

(2)API管理

所有API可後臺查詢管理,包括動態釋出、引數對映配置、後端服務介面配置、API禁用、啟用,多版本、分組、分級別等。

(3)應用管理

後臺管理開放平臺接入的應用(第三方應用),包括查詢、禁用、啟用、稽核。

(4)計費收費

a. API的呼叫統計,每筆請求時間,響應時間,響應狀態。

b. API的計費計算,按照請求量和請求資源計費,實現多種計費模型。(預付費,後收費。按量,按時間週期。)

(5)       熔斷

(6)       流量統計及限流

l  支援現有子系統RPC協議的API動態釋出及運營,外部請求透傳。

l  支援json、xml響應報文,可以請求時選取所需報文格式。

l  支援動態直接將後端SOA服務暴露為API。

l  支援動態將普通Web介面暴露為API。

l  支援動態將MQ服務暴露為API。

l  支援多個服務組合編排後暴露為API。

l  請求的轉發、合成和協議轉換

l  給客戶端提供一個定製化的API

1.3.2 API Gateway模式的優缺點

(1)優點:

l  特定的API。使客戶端只需跟Gateway打交道,減少客戶端與服務端的通訊次數,也簡化了客戶端的程式碼。

l  去報客戶端不需要受服例項位置的影響

l  為每套客戶端提供最優的API

l  降低請求/往返次數

(2)缺點

l  API Gateway是一個高可用的元件,必須要開發、部署和管理。開發者必須要更新API Gateway來提供新服務提供點來支援新暴露的微服務。

l  API Gateway會造成多餘的網路跳轉

2.3 API 版本管理


相關推薦

服務理論實踐()-服務之間互動

Microservice架構模式中的“開”是各個服務的內部實現,而其中的“閉”則是各個服務之間相互溝通的方式 微服務必須使用程序間通訊機制來互動。微服務架構有兩類IPC機制可選,非同步訊息機制和同步請求/響應機制。當設計服務的通訊模式時,需要考慮幾個問題:服務如何互動

服務理論實踐(三)-服務架構的基本能力和優缺點

控制臺 並且 提高 str love 速度 ont 寫入 框架 1.微服務架構模式方案 微服務架構采用Scale Cube方法設計應用架構,將應用服務按功能拆分成一組相互協作的服務。每個服務負責一組特定、相關的功能。每個服務可以有自己獨立的數據庫,從而保證與其他服務解耦。

服務理論實踐(四)----服務架構的六種模式

1.微服務架構模式方案 用Scale Cube方法設計應用架構,將應用服務按功能拆分成一組相互協作的服務。每個服務負責一組特定、相關的功能。每個服務可以有自己獨立的資料庫,從而保證與其他服務解耦。 1.1 聚合器微服務設計模式         聚合器呼叫多個服務實現

10. 服務理論實踐-服務註冊發現

微服務理論與實踐-服務註冊與發現 微服務理論與實踐-服務註冊與發現 1 背景 2 方案 2.1 客戶端服務發現 2.2 客戶端服務發現的優缺點

9. 服務理論實踐-服務架構的基本能力和優缺點

微服務理論與實踐-微服務架構的基本能力和優缺點 微服務理論與實踐-微服務架構的基本能力和優缺點 1 微服務架構模式方案 2 微服務架構的基本能力 2.1 Restful 輕量級通訊的首選方式 2.2 RPC 通訊

服務理論實踐(一)----架構的背景及需求

一。背景 業務架構是戰略,應用架構是戰術,技術架構是裝備。 在開發服務端企業應用時,需要支援各種客戶段,包括PC桌面瀏覽器,移動瀏覽器及原生移動應用,應用還需要向第三方提供可訪問的API,並通過WebSevice或者訊息代理與其他應用進行整合。應用通過業務邏輯,訪問資料庫

服務架構實踐及雲原生等相關概念

定時 服務器端 body 內容 開放封閉原則 logs 方法 服務架構 binding 微服務架構與實踐 筆記:《微服務架構與實踐》 王磊 著 一 單塊架構   1 定義:對於這種功能集中、代碼和數據中心化、一個發布包、部署後運行在同一進程的應用程序,我們通常稱之為單塊架構

Spring Cloud 服務設計實踐

quic AS PC huang 位置 拓撲 uri 支持 特性 整理微服務設計與實踐歷程,共享給大家。 微服務的描述 The description of microserivce by Martin Fowler : 根據業務模塊劃分服務種類。 每個服務可以獨立部署並

【EBook】-NO.161.服務.1 -【服務架構實踐

Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of Mastery:5 Practical Level:5 Desired Goal:5 Arc

服務架構實踐 學習筆記(1)

參考:微服務架構與實踐 第二章 微服務架構的“微”應該遵循的兩個基本前提: 業務獨立性。應該保證微服務是具有業務獨立性的單元,並不能只是為了微而微。可以將某一領域的模型作為獨立的業務單元,譬如訂單、產品、合同等,也可以將某業務行為作為獨立的業務單元,譬如傳送郵件、單點登入

服務探索實踐服務註冊發現

直接 註冊表 服務發現 動態配置 bubuko 添加 容災 負載均衡策略 life 前言 微服務從大規模使用到現在已經有很多年了,從之前的探索到一步步的不斷完善與成熟,微服務已經成為眾多架構選擇中所必須面對的一個選項。服務註冊與發現是相輔相成的,所以一般會合起來思索。其

服務-springCloud快速實踐2:服務監控、熔斷器監控及zipkin呼叫鏈

springCloud快速實踐2:服務監控、熔斷器監控及zipkin呼叫鏈 完整程式碼下載連結: https://github.com/2010yhh/springCloud-demos.git 環境 idea2018,jdk1.8, springboot版

網易雲信 QUIC 加速服務架構實踐

導語:網易雲信作為音視訊服務提供商的領導者,一直致力於提供頂級的音視訊通話服務體驗,為使用者在各種惡劣環境下提供可靠的音視訊服務。如何在極端弱網條件下仍然能給使用者提供可靠的音視訊服務,是網易雲信關注的重中之重。本文將闡述網易雲信為了提高可靠資料在弱網環境及時性所採用的架構技術方案。 ## 引言 市面上多

Visula Basic程序設計理論實踐pdf

實驗 http ria 文字 blog 本科 title 計算機 div 下載地址:網盤下載 visual basic是國內外流行的程序設計語言之一。visual basic程序設計是比較理想的學習程序設計的第一門課程。本書主要涉及visual basic程序設計概述,程

Java線程池的理論實踐

java 架構 前段時間公司裏有個項目需要進行重構,目標是提高吞吐量和可用性,在這個過程中對原有的線程模型和處理邏輯進行了修改,發現有很多基礎的多線程的知識已經模糊不清,如底層線程的運行情況、現有的線程池的策略和邏輯、池中線程的健康狀況的監控等,這次重新回顧了一下,其中涉及大量java.util.co

MySQL優化核心理論實踐

mysql優化實踐理論知數堂背景描述:朋友單位OA系統前不久完成升級大改造,後端用的MySQL存儲數據,上線跑了個把月,抱怨電話開始接二連三打來,不是這裏打不開,就是那裏無響應,有人比喻升級後變成老爺車,越來越慢,問題迫在眉睫,必須馬上想對策呀。由於部署采用了規範文檔,上線前也做了各種測試,於是乎,在線排查,

新一代網絡建設理論實踐讀書筆記-雲計算

雲計算一、雲計算定義: 維基百科:雲計算是一種基於互聯網的新計算方式,通 過互聯網上異構、自治的服務為個人和企業提供按需即取的計算。 1.雲計算描述共同特征:雲是一種服務 按需使用 靈活付費 2.特點:雲計算是一種新的IT服務模式,支持大規模計算資源的虛擬化, 提供按需計

數據庫設計理論實踐·<一>總結

enter 數據庫管理 cti family 分享圖片 TP CA pan png 一、數據庫生命周期 數據庫生命周期流程圖如下: 二、各階段附圖    附圖1.1 數據流圖 附圖1.2 數據字典-方式1 補充說明:數據字典既可以單張表格表示,也可以多種

數據庫設計理論實踐·<三>物理設計

開發 過程 系統開發 soft gin 出版 strong SQ bsp 一、物理設計核心任務與關鍵細節 二、物理設計經驗之談   1.數據類型的設計:建議字段數據類型定義時結合以下幾點(以MYSQL為例)     1)不適用image,而使用varbinary等  

數據庫設計理論實踐·<四>數據庫基本術語及其概念

primary 數據模型 大學生 其中 關系模型 ttr 必須 domain 關系 一、關系模型   關系模型是最重要的一種數據模型。關系數據庫模型系統采用關系模型作為數據的組織方式。   關系模型的數據結構:   關系:一張表   元組:一行記錄。   屬性:一列   碼