項目軟知識系列--微服務爲什麼要有網關

其他網址

(十)爲什麼微服務一定要有網關? - 簡書
微服務爲什麼要使用網關服務 - Yezhiwei的博客

另見:《SpringCloud微服務實戰》=> 第7章 API網關服務:Spring Cloud Zuul

網關作用

服務網關 = 路由轉發 + 過濾器

1、路由轉發:外界請求轉發到微服務

2、過濾器:權限校驗、限流監控(路由轉發也通過過濾器)

爲什麼需要網關

若不使用網關,情況如下:

運維角度:路由規則與服務實例列表:若有實例增減或是IP 地址變動等需要手動修改。

開發角度:以權限校驗爲例:需要每個微服務寫同樣的校驗邏輯

使用網關之後

網關可自動獲得其他微服務實例信息

網關同一維護權限

框架

微服務架構:服務網關、open-service和service。

1、流程:

  • 服務網關、open-service和service啓動時註冊到註冊中心上去;
  • 網關做智能路由轉發(包括服務發現,負載均衡)到open-service,這其中包含權限校驗、監控、限流等操作open-service聚合內部service響應,返回給網關,網關再返回給用戶

2、注意點

多一層轉發,性能下降(不大);儘量輕

防止網關單點:前邊再掛nginx性能極高,基本不掛,網關就可不斷添加機器。最好是網關單點服務部署在一臺牛機器上(壓測估算),且nginx與zuul性能相差不大。

3、基本功能

智能路由:接收外部一切請求,並轉發到後端的對外服務open-service上去;服務之間不走網關

權限校驗:只校驗用戶open-service服務請求,不校驗內部

API監控:監控請求,本身性能指標(如gc);

限流:配合監控限流

API日誌統一收集:類似aspect切面,接口進出日誌。

A|B測試:實驗配置、數據埋點(看轉化率)及分流引擎(調用內部服務在open-service中)

技術選型

開發語言:java + groovy,groovy的好處是網關服務不需要重啓就可以動態的添加filter來實現一些功能;

微服務基礎框架:springboot;

網關基礎組件:netflix zuul;

服務註冊中心:consul;

權限校驗:jwt;

API監控:prometheus + grafana;

API統一日誌收集:logback + ELK;

壓力測試:Jmeter;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章