通用服務平台之位址分發

2021-10-06 13:38:49 字數 1235 閱讀 2944

位址分發其實先於**服務被客戶端所鏈結,這是由位址分發功能所決定。位址分發是整個通用平台唯一對客戶端發布服務資料的服務,其功用也是為客戶端提供所需的服務資料。客戶端、位址分發、**或其他業務服務關係示意圖如下:

位址分發示意圖  

如上圖可知客戶端在無任何服務端資料時,首先從位址分發獲取服務資料,之後才能根據獲取的服務資料向服務發起連線進行業務互動。那麼這裡面就有乙個關鍵問題,客戶端在沒有任何服務資料情況下,怎麼能獲取位址分發服務的資料呢?

1. 如何獲取位址分發服務資料

這個問題一般採用網域名稱對映方式來解決,我們知道dns網域名稱解析可以獲得一組指定網域名稱相對應的ip位址。正是這個網域名稱對映解析ip位址的功能可以為客戶端獲取一組位址分發服務資料。如果將該類服務的埠號固定,那麼客戶端就能獲取關於位址分發服務的完整資料,可以向位址分發服務發起資料請求。

2. 分發服務如何獲取業務資料

3. 自適應性和可擴充套件性

位址分發處於客戶端入口前端,決定客戶端所連線**服務這裡面其實有較多重要細節,如考慮****效能,應將同產品線客戶端盡量收納至一定範圍;如考慮客戶端與服務之間通訊延遲,應盡量根據客戶端所在區域,利用測速或ip比對的方式就近分配**或業務服務資料。目前通用平台中位址分發服務暫不實現分配邏輯,所本章討論分發的自適應性和可擴充套件性。隨著業務發展某產品線向客戶端暴露的服務資料很可能會有增刪變化,怎麼能讓服務在無需改版公升級情況下,能自適應、可擴充套件呢。我採用的解決方案就是在服務資料中,新增暴露標誌來解決。位址分發服務從資料子系統獲取具有暴露標誌的資料,且保持與資料子系統的資料同步,如此位址分發服務基本能做到實時資料變化,客戶端能實時獲取系統最新的服務資料。

4. 各業務產品線資料隔離

5. 位址分發效能壓力

位址分發一般被設計為短連線,客戶端從該服務獲取資料後,可直接斷開無需保持連線,因為分發服務可以一次分發足量服務資料,保證客戶端在較長時間內不會出現服務資料短缺情況。考慮到安全保護,分發服務也能進行鏈路檢測,如發現資料已傳送但鏈路存在一定時間未斷開情況,可以主動斷開。如上所述,可知分發服務特徵是短連線、且通訊資料量小、邏輯處理簡單型別服務、基本無需考慮大併發量壓力,每機房適當部署兩到三個程序,基本可以滿足系統要求,後續視壓力情況酌情新增即可。

通用服務平台之總體架構設計

微服務通用的「使用者角色許可權」平台設計

在絕大部分的微服務平台中,都會涉及到賬號表 account 使用者表 user 使用者組表 user group 角色表 role 和許可權表 permission 等的通用資料表,然而這幾張表之間又會存在一些非常通用的關係以及相同的處理方式,你的使用者平台是否設計對了呢?本文將基於角色訪問控制 r...

通用服務平台之總體架構設計(一)

一晃從事軟體行業已經有多個年頭,而從事伺服器相關後端開發,也有了不短的時間,維護過中小型系統,也曾親身設計過小型系統,但是一直都感覺不太順意,不是自己想要的那種服務體系,很多時候都是在重複造輪子,於是一直在想是不是有可能存在一套通用的服務平台,提供與業務無關的後端服務通用功能,將這些功能糅合成乙個通...

通用服務平台之總體架構設計(二)

本篇是通用服務平台總體架構設計第二篇,繼續上篇尚未完成的模組構件功能應用簡介。6.資料子系統 7.通訊子系統 本人所維護過的後端服務中,基本都是服務之間直連。該方法好處在於無中間節點延遲較低,同時由於直連在鏈結斷開處理上比較簡單。雖然有以上諸多好處,但有利就有弊,服務直連就意味著服務需要進行鏈結服務...