搭建微服務
下面透過示例一步步搭建一個分散式微服務
1. 業務場景
假設有一個業務場景是要實現一個會員線上瀏覽新聞的應用,支援手機和PC端。
分析了詳細需求,把專案拆分成三個微服務:
- 會員註冊微服務;
- 會員授權微服務;
- 瀏覽新聞微服務;
2. 框架簡圖
如圖所示:
client 是呼叫 api 的主體,用 postman 模擬
Service Discovery Server 儲存已註冊服務的地方,供 Server 註冊服務和 ApiGateway 發現服務, 用 consul
ApiGateway 提供一個訪問微服務統一的對外閘道器, 外部用 http 透過閘道器呼叫開放的介面,閘道器內部呼叫微服務用 RPC,閘道器還提供服務治理和管理等其他功能,用 Asp.Net Core Web 實現
Server 微服務的宿主,用 .Net Core 的控制檯應用實現
3. 微服務說明
會員授權微服務:Authorize Server
提供授權服務,使用者使用會員的使用者名稱和密碼獲取 token, 帶著 token 訪問受保護的介面,如瀏覽和釋出新聞。
會員註冊微服務:Register Server
提供會員註冊服務,使用者必須註冊成會員才能享受應用提供的服務,如瀏覽和釋出新聞, 但有些服務又需要指定角色的會員才能操作,如所有會員都可以瀏覽新聞,只有管理員(admin)角色的會員才可以釋出新聞。
瀏覽和釋出新聞微服務:News Server
提供新聞瀏覽和釋出服務