傳統All In One專案的轉變:
All In One專案因易於開發, 易於部署和上線週期短等特點一直持續了很長時間, 但慢慢的應用變大, 開發人數多, 技術棧多, 持續部署困難, 啟動時間變慢等問題慢慢凸顯時, 微服務架構應運而生。
微服務架構可以解決單體架構各種侷限性問題。
微服務架構:
開發高可用企業應用, 後端需要支援多種客戶端形式, 比如桌面端, 移動端及其他微服務的呼叫。 微服務架構設計需要考慮以下方面的內容:
微服務架構負載均衡:
在做高可用方案時可選的各種負載均衡方案:
·在接入層呼叫業務邏輯層或者業務邏輯層間相互呼叫時, 中小型可選用本地DNS方式做服務發現和負載均衡的機制;
·在面臨多團隊, 多專案, 多網路部署節點的情況下, 服務註冊/發現機制便是現在的最佳實踐。
·部署在內外網、多資料中心 等複雜網路情況下的服務間的相互呼叫, 用友雲提供的微服務註冊/發現中心提供了這方面的解決方案。
用友雲微服務註冊中心:
用友雲服務註冊中心是微服務核心模組之一, 是基於REST的雲端服務註冊/發現和故障轉移的中介軟體服務, 對整個微服務架構起著最核心的整合作用。
傳統註冊中心需具備的功能:
·服務註冊: 服務客戶端啟動時檢測自己的後設資料(如:主機和埠等資訊)上報且註冊到註冊中心。 服務註冊中心通過接收此服務的各個例項的心跳資訊來檢查服務客戶端的健康狀態。
·服務發現: 發起遠端呼叫時, 從註冊中心拉取被呼叫服務的資訊(如服務有多少例項,每個例項的IP/域名和埠是什麼)並且快取到本地, 方便使用負載均衡的方式去呼叫遠端服務; 被快取的遠端服務資訊會被定時從註冊中心拉取重新整理, 以便發現新的服務例項和刪除有異常的服務例項。
用友雲微服務註冊中心特點:
在具備了傳統微服務註冊中心的基本功能的基礎上, 用友雲還具備了租戶隔離、高可用叢集、授權管理、擴充套件支援多種負載均衡策略。且獨創業界複雜網路多躍點智慧檢測,解決了內外網穿透的問題。
分租戶隔離機制
·用友雲租戶很多, 每個租戶下有自己的資源池(計算/網路等), 對於微服務註冊中心, 每個租戶只能看到自己部署的應用。
·每個租戶可以看到自己部署的服務應用 及 跟蹤服務間的呼叫鏈路。
高可用&快速恢復
·服務註冊中心使用叢集方式搭建, 防止單點故障。
·在客戶端和註冊中心互動時會跳過叢集中有異常的節點訪問正常的節點。
·叢集異常節點恢復後會從叢集中的其他節點快速拉取客戶端註冊的資訊並且加入叢集中對外正常提供服務。
內外網穿透呼叫能力/網路多躍點智慧檢測
·在複雜網路下的服務可能會有多個IP和埠, 傳統註冊中心只上傳部署應用的“容器”IP, 但“容器”可能部署在宿主機、docker容器、虛擬機器、跨資料中心等複雜環境, 傳統服務註冊中心無法穿透各躍點進行聯通訪問。
·用友雲註冊中心客戶端元件會智慧檢測各個可連通的鏈路及各鏈路所需的躍點數; 保證遠端呼叫時躍點的數量最少、呼叫鏈路最短, 呼叫速度最快, 提高服務的可靠性、吞吐量 及 增加內外網穿透/多資料中心間的呼叫能力。
·在海關POC專案中, 客戶內部存在網路隔離情況, 且部署在不同網路的應用還存在資料交換或服務呼叫的需求。針對這類情況, 通過用友雲微服務註冊中心提供了這方面的解決方案。
服務呼叫
·現支援多種負載均衡策略可選, 支援自定義擴充套件
·隨機訪問策略
·輪詢訪問策略
·按照伺服器響應時間長短進行選擇訪問
·挑選可用且當前承載最小併發數的伺服器
授權管理
·公開許可權的API可以被任何應用訪問
·私有許可權的API僅被授權的應用可以訪問。
接入用友雲註冊中心應用:
·搜尋平臺
·收集並計算各方業務資料, 對外提供統一搜尋服務的平臺。
·用友雲相關客戶專案
·用友API市場ApiLink