一文喫透何爲微服務、網關、服務發現 - 註冊?

作者: joyo 來源: https://joyohub.com/micro-server/

Part1 序

Part2 單體結構

1 什麼是單體結構?

單體架構

但是,上述的好處是有條件的:應用不那麼複雜 。

2 單體架構的優缺點

優點:

缺點:

Part3 微服務

3 什麼是微服務?

總結起來就是:

1)一組小的服務(大小沒有特別的標準,只要同一團隊的工程師理解服務的標識一致即可)

2)獨立的進程(java 的 tomcat,nodejs 等)

3)輕量級的通信(不是 soap,是 http 協議或者是 Tcp 協議)

4)基於業務能力(類似電商的訂單服務、用戶服務、商品服務等等)

5)獨立部署(迭代速度快)

6)無集中式管理(無須統一技術棧,可以根據不同的服務或者團隊進行靈活選擇,只要提供調用就可以)

4 微服務的優缺點

優點

優點一:拆分系統

優點二:分治管理

優點三:簡化部署和增強擴展

缺點

缺點一:拆分大小限制

缺點二:增加編碼的複雜性

缺點三:數據存儲難度增大

缺點四:測試完整服務複雜

缺點五:微服務架構模式應用的改變將會波及多個服務。

比如,你需要更新服務 C,然後是 B,最後纔是 A,幸運的是,許多改變一般隻影響一個服務,而需要協調多服務的改變很少。

缺點六:受網絡帶寬影響大

5 微服務架構

微服務體系按照請求接入,由外到內的順序,一般將整體架構分爲 接入層 、 網關層 、 業務服務層 、 支撐服務層 、 平臺服務層 、基礎設施層 六層。

1:接入層

負載均衡作用,運維團隊負責

2:網關層

反向路由,安全驗證,限流等

3:業務服務層

基礎服務和領域服務

4:支撐服務層

5:平臺服務

6:基礎設施層

Part4 微服務網關

6 什麼是服務網關?

服務網關可以這樣簡單理解:

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

  1. 路由轉發:接收一切外界請求,轉發到後端的微服務上去;

2、過濾器:在服務網關中可以完成一系列的橫切功能,例如權限校驗、限流以及監控等,這些都可以通過過濾器完成(其實路由轉發也是通過過濾器實現的)。

7 爲什麼需要服務網關?

舉個例子,以權限校驗的需求來講,我們有三個方案來解決:

方案一 : 每個服務都實現一遍權限校驗的代碼

方案二 : 將權限校驗的代碼抽取出來並作爲公共服務,然後其他所有服務都依賴這個服務

方案三 : 寫到服務網關的前置過濾器中,所有請求過來進行權限校驗

方案分析:

方案一

方案二

方案三

網關

8 微服務網關的功能

路由轉發

負載均衡

安全認證

日誌記錄

數據轉換

9 微服務網關開源應用

Zuul

zuul 架構

請求過程

Tyk

Kong

Traefik

Ambassador

API 網關實現對比

10 引入網關的微服務架構

引入服務網關後的微服務架構如上,總體包含三部分:服務網關、open-service 和 service。

微服務

訪問流程

注意點

Part5 微服務的服務註冊和發現

11 爲什麼需要服務註冊?

12 服務註冊原理

因此,我們可以分爲兩個角度去分析原理:

角度一:“服務提供者”向 “服務註冊中心” 進行註冊

1. 服務自己註冊

自己註冊服務

2. 第三方註冊

第三方註冊

角度二:“服務消費者”向 “服務註冊中心” 查詢和調用服務

1. 客戶端模式

client

2. 代理模式

代理模式

13 開源的服務註冊發現框架

Eureka

Eureka 是由 Netflix 開源,其架構如下圖:

Eureka

Consul

Consul

Etcd

Part6 微服務配置中心

14 什麼是配置中心?

15 爲什麼需要配置中心?

傳統項目中,我們是怎麼處理各類配置參數問題的:

  1. 一般是靜態化配置
  1. 配置文件無法區分環境
  1. 配置文件過於分散
  1. 配置修改無法追溯

上面只是拿配置文件的形式來舉例,有的項目會採用數據庫配置,雖然靈活一點,但是依舊不能完全解決上述問題。

「配置中心」的方案是如何解決這些痛點的:

16 配置中心的特點

那麼,具有上述特性的「配置中心」是如何解決上面傳統配置所面臨的問題的呢?

17 開源的配置中心方案

Apollo

apollo

Apollo 項目的 Github 地址

XDiamond

XDiamond 項目的 Github 地址

Qconf

Qconf 項目的 Github 地址

Disconf

Disconf 項目的 Github 地址

Part7 總結

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/rjucAF4zvDylBfIri3RgeQ