發布時間:2022-02-19作者來源:優智互聯瀏覽:1167
分布式服務架構、微服務架構與 API 網關
1. 什么是API網關(API Gateway)
其實,網關跟面向服務架構(SOA)和微服務架構(MSA)有很深的淵源。
十多年以前,銀行等金融機構完成全國業務系統大集中以后,分散的系統都變得集中,也帶來了各種問題:業務發展過快如何應對,對接系統過多如何集成和管理。為了解決這些問題,業界實現了作用于渠道與業務系統之間的中間層網關,即綜合前置系統,由其適配各類渠道和業務,處理各種協議接入、路由與報文轉換、同步異步調用等操作。
人們基于SOA的理念,在綜合前置的基礎上,進一步增加了服務的元數據管理、注冊、中介、編排、治理等功能,逐漸形成了企業服務總線(ESB)。
面向服務架構(SOA)是一種建設企業IT生態系統的架構指導思想。SOA的關注點是服務,服務最基本的業務功能單元由平臺中立性的接口契約來定義。通過將業務系統服務化,可以將不同模塊解耦,各種異構系統間可以輕松實現服務調用、消息交換和資源共享。不同于以往的孤立業務系統,SOA強調整個企業IT生態環境是一個大的整體。整個IT生態中的所有業務服務構成了企業的核心IT資源。各個系統的業務拆解為不同粒度和層次的模塊和服務,服務可以組裝到更大的粒度,不同來源的服務可以編排到同一個處理流程中,實現非常復雜的集成場景和更加豐富的業務功能。
SOA從更高的層次對整個企業IT生態進行統一的設計與管理,應用軟件被劃分為具有不同功能的服務單元,并通過標準的軟件接口把這些服務聯系起來,以SOA架構實現的企業應用可以更靈活快速地響應企業的業務變化,實現新舊軟件資產的整合和復用,降低軟件整體擁有成本。
當然基于ESB這種集中式管理的SOA方案也存在種種問題,特別是在面向互聯網技術領域的爆發式發展的情況下。
2. 分布式服務架構、微服務架構與API網關
近年來,隨著互聯網技術的飛速發展,為了解決以ESB為代表的集中式管理的SOA方案的種種問題,以Apache Dubbo(2011年開源后)與Spring Cloud為代表的分布式服務化技術的出現,給了SOA實現的另外一個選擇:去中心化的分布式服務架構(DSA)。分布式服務架構技術不再依賴于具體的服務中心容器技術(比如ESB),而是將服務尋址和調用完全分開,這樣就不需要通過容器作為服務代理。
之后又在此基礎上隨著REST、Docker容器化、領域建模、自動化測試運維等領域的發展,逐漸形成了微服務架構(MSA)。在微服務架構里,服務的粒度被進一步細分,各個業務服務可以被獨立地設計、開發、測試、部署和管理。這時,各個獨立部署單元可以選擇不同的開發測試團隊維護,可以使用不同的編程語言和技術平臺進行設計,但是要求必須使用一種語言和平臺無關的服務協議作為各個單元之間的通信方式。