金融行業微服務架構解析

2022-02-08 EAWorld

轉載本文需註明出處:微信公眾號EAWorld,違者必究。

引言:

對於微服務,每個人都有自己的理解,與網際網路企業的大量落地相比,微服務在傳統金融行業還沒有普及,這首先是傳統金融行業線上系統需求更新和版本迭代沒有網際網路公司那麼頻繁;其次是技術能力約束了新技術的落地;再者傳統金融行業對系統可用性和穩定性的要求非常高。

如何理解微服務架構?微服務能夠給金融行業帶來什麼?金融行業微服務架構如何選型?這些都需要我們對微服務架構進行深入的剖析。

目錄:

一、什麼是微服務

二、主流微服務框架

三、微服務架構關鍵技術

微服務架構定義

微服務的定義源於 2014 年 3 月 Martin Fowler 所寫的一篇文章「Microservices」,微服務的四個特性定義抽象為「小、獨、輕、松」。

微服務的感性認識

轉型之前:

緊耦合組件

慢的部署周期,等待集成測試

轉型之後:

鬆耦合組件

自動化部署,無需等待獨立組件

微服務優勢

可伸縮性:服務的承載能力在設計之初並不能完全符合後來業務發展的要求,隨著業務量增大,服務要通過伺服器集群方式進行擴展,各個微服務的擴展數量也是按需求擴展,承載量大的微服務擴展節點多,承載量小的微服務擴展節點少,從而實現資源有效配置。

降低風險:準備好部署各個階段的工件,包括:構建工件,測試腳本,配置文件和部署清單文件。

a) 從負載均衡列表中移除掉「金絲雀」伺服器。

b) 升級「金絲雀」應用(排掉原有流量並進行部署)。

c) 對應用進行自動化測試。

d) 將「金絲雀」伺服器重新添加到負載均衡列表中(連通性和健康檢查)。

e) 如果「金絲雀」在線使用測試成功,升級剩餘的其他伺服器。(否則就回滾)

彈性系統:在理想的設計中,一旦某一非核心微服務啟動失敗,其他微服務仍然可用,用戶在沒有使用到異常模塊所提供的服務時,對這一異常完全無感知,大大增強了用戶體驗。

敏捷:開發成本降低,響應速度加快。各個開發團隊的人員不必耗費大量時間了解整個服務端架構,主要通過了解某個微服務的金融業務需求和技術體系即可參與開發,從而降低了學習成本以及改動代碼帶來的風險,代碼審查流程的簡化也相應地加快了開發響應速度。

靈活:不要求所有的微服務都使用同一種技術和平臺來實現。

微服務架構帶來的問題

依賴服務變更很難跟蹤,其他團隊的服務接口文檔過期怎麼辦?依賴的服務沒有準備好,如何驗證我開發的功能。

部分模塊重複構建,跨團隊、跨系統、跨語言會有很多的重複建設。

微服務放大了分布式架構的系列問題,如分布式事務怎麼處理?依賴服務不穩定怎麼辦?

運維複雜度陡增,如:部署物數量多、監控進程多導致整體運維複雜度提升。

這些解決方案折騰到最後就會明白,原來我們要有一個微服務應用平臺才能整體性的解決這些問題。

微服務架構適用場景

微服務架構並不是萬能的,有它適合採用的系統,這些系統包括:

對於業務流程較為複雜,且業務會逐漸變得更加複雜的系統,單體應用將十分龐大,後期難以修改和維護,應考慮使用微服務架構。

為了滿足業務需求,項目中引入了眾多的技術棧,中間件,單體應用會給開發者帶來很大的困擾,應考慮將應用拆分成多個獨立部署的採用最優技術棧實施的微服務。

高並發的,有高可用和彈性伸縮需求的系統,往往是那些面向龐大數量網際網路用戶的平臺類、交易類系統,應考慮利用微服務架構便於橫向擴展和彈性伸縮的特性。

單體應用版本發布成本高,而單個微服務的變更和發布都很容易,那些有高頻率版本發布需求的系統,應使用微服務架構。

沒有數據實時強一致要求,可接受數據最終一致的系統,可使用微服務架構。

在銀行系統中:

OA、HR、績效等管理類系統並不需要微服務架構;

信貸、CRM等管理類應用如果體積龐大(幾十萬行代碼以上),要使用微服務改造;

中間業務、核心帳務、網銀由於系統壓力大,可以採用微服務架構。

微服務架構在網際網路金融方面的應用

第三方支付包括以支付寶、財付通、盛付通為代表的網際網路支付企業,也包括快錢、匯付天下為代表的金融型支付企業。

P2P小額信貸是一種個人對個人的直接信貸模式。

大數據金融是指集合海量非結構化數據,通過對其進行實時分析,可以為網際網路金融機構提供客戶全方位信息。

眾籌融資指用團購+預購的形式,向網友募集項目資金的模式。眾籌利用網際網路傳播的特性,讓小企業、藝術家或個人對公眾展示他們的創意,爭取大家的關注和支持,進而獲得所需要的資金援助。

所謂信息化金融機構,是指通過採用信息技術,對傳統運營流程進行改造活重構,實現經營、管理全面電子化的銀行、證券和保險等金融機構。

網際網路金融門戶是指利用網際網路進行金融產品的銷售以及為金融產品銷售提供第三方服務的平臺。它的核心就是「搜索+比價」的模式。

業界開源微服務框架方案比較

綜合來看,SpringCloud是首選。為什麼選擇SpringCloud?

不只是解決微服務的某一個問題,而是一個解決微服務架構實施的綜合性解決框架;

整合了諸多被廣泛實踐和證明過的框架作為實施的基礎部件,又在該體系基礎上創建了一些非常優秀的邊緣組件 ;

大量的兼容性測試,保證了更好的穩定性;

極高的社區活躍度;

SpringCloud之於其他微服務框架就好比是:品牌機 VS  DIY電腦

微服務平臺技術圖譜

微服務技術桟:

API Doc: Swagger UI

API Mock: Swagger Mock API

AOP基礎框架:Spring framework

微服務容器:Spring Boot

服務發布:Spring Web MVC

服務註冊中心:Spring Cloud - Eureka

服務路由:Spring Cloud – Ribbon

服務調用:Spring Cloud – Feign

服務熔斷器:Spring Cloud – Hystrix

安全認證:Spring Cloud - Security

服務配置中心:Apollo , Spring Cloud – Config

服務監控:Spring Boot Admin

關鍵技術架構與設計

我們從這9個方面來解析微服務關鍵技術架構與設計。

兼容性


Vue是流行的前端框架,其對瀏覽器的兼容性較好,主流的作業系統和瀏覽器都支持。

vue響應式雙向數據綁定實現自動同步

vue.js採用數據劫持結合發布者-訂閱者的方式,通過Object.defineProperty()來劫持各個屬性的setter,getter,在數據變動時,發布消息給訂閱者,觸發相應的監聽回調。

具體的來講,Vue.js通過Directives指令去對DOM做封裝,當數據發生變化,會通知指令去修改對應的DOM,數據驅動DOM的變化。vue.js還會對操作做一些監聽(DOM Listener),當我們修改視圖的時候,vue.js監聽到這些變化,從而改變數據。這樣就形成了數據的雙向綁定。

微服務運行的容器環境

我們來看一下微服務運行容器,要做可靠高效的微服務架構應用,實際上我們需要做的事情還是非常多的。如果沒有一個統一的微服務容器,這些能力在每個微服務組件中都需要建設一遍,而且會五花八門,也很難集成到一起。

微服務容器:負載均衡

微服務容器的基礎服務能力之一就是支持負載均衡。

通常所說的負載均衡都指的是服務端負載均衡,其中分為硬體負載均衡和軟體負載均衡。硬體負載均衡主要通過在伺服器節點之間安裝專門用於負載均衡的設備,比如F5等;而軟體負載均衡則是通過在伺服器上安裝一些具有負載均衡功能或模塊的軟體來完成請求分發工作,比如Nigix等。

硬體負載均衡的設備或是軟體負載均衡的軟體模塊都會維護一個下掛可用的服務端清單,通過心跳檢測來剔除故障的服務端節點以保證清單中都是可以正常訪問的服務端節點。當客戶端發送請求到負載均衡設備時,該設備按照某種算法(比如線性輪詢、按權重負載、按流量負載等)從維護的可用服務端清單中取出一臺服務端的地址,然後進行轉發。

客戶端負載均衡和伺服器負載均衡最大的不同點在於上面所提到的服務清單所存儲的位置。在客戶端負載均衡中,所有客戶端節點都維護著自己要訪問的服務端清單,而這些服務端的清單來自於服務註冊中心,建議使用Spring Cloud Netflix 的Ribbon組件。

微服務容器:服務熔斷、容錯、升降級、限流

微服務容器的基礎服務能力之二就是服務熔斷、容錯、升降級、限流,在系統出現異常時提供故障恢復能力。

服務註冊與發現

接下來我們聊一下註冊發現,以前的單塊應用之間互相調用時配置個IP就行了,但在微服務架構下,服務提供者會有很多,手工配置IP位址又變成了一個不可行的事情。那麼服務自動註冊發現的方案就解決了這個問題。

我們的服務註冊發現能力是依賴SpringCloud Eureka組件實現的。服務在啟動的時候,會將自己要發布的服務註冊到服務註冊中心,運行時,如果需要調用其他微服務的接口,那麼就要先到註冊中心獲取服務提供者的地址,拿到地址後,通過微服務容器內部的簡單負載均衡器進行路由。

一般情況,系統內微服務的調用都通過這種客戶端負載均衡的模式進行,否則就需要有很多的負載均衡進程。跨業務系統的服務調用,也可以採用這種去中心化的路由方式。當然採用SOA的模式,由中心化的服務網管來管理系統間的調用也是另一種選擇,要結合企業的IT現狀和需求來決定。

集中配置管理

微服務分布式環境下,一個系統拆分為很多個微服務,一定要告別投產或運維手工修改配置的方式。需要採用集中配置管理的方式來提升運維的效率。

配置文件主要有運行前的靜態配置和運行期的動態配置兩種。靜態配置通常是在編譯部署包之前設置好。動態配置則是系統運行過程中需要調整的系統變量或者業務參數。

要想做到集中的配置管理,那麼需要注意以下幾點:

配置與介質分離,這個就需要通過制定規範的方式來控制。千萬別把配置放在Jar包裡。

配置的方式要統一,格式、讀寫方式、變更熱更新的模式儘量統一,要採用統一的配置框架

運行時需要有個配置中心來統一管理業務系統中的配置信息,這個就需要平臺來提供配置中心服務和配置管理門戶。

配置修改同步交互

配置修改後通過推送或者定時拉取的方式更新並緩存到應用程式所在的微服務容器中供應用程式使用。

高可用運行架構設計

配置中心有兩種部署模式

高可用模式,見上圖,支撐大規模微服務訪問時根據負載情況可以對「配置查詢同步服務」進行橫向擴展

ALL-IN-ONE模式,配置變更服務、配置查詢服務合併為一個進程。適合支撐少量系統的場景使用。

配置中心可以支持高可用模式部署,滿足金融行業的要求。

基於Skywalking定製實現

SkyWalking主要就是通過收集各種格式的數據進行存儲,然後展示。所以我們需要關注的是 SkyWalking Collecter、SkyWalking UI 和 存儲設備。

APM探針

JavaAgent 是JDK 1.5 以後引入的,也可以叫做Java代理。

JavaAgent 是運行在 main方法之前的攔截器,它內定的方法名叫 premain ,也就是說先執行 premain 方法然後再執行 main 方法。

使用agent技術構建一個獨立於應用程式的代理程序(即為Agent),用來協助監測、運行甚至替換其他JVM上的程序。使用它可以實現虛擬機級別的AOP功能。

APM全鏈路運行監控

調用鏈跟蹤分析:把同一TraceID的Span收集起來,按時間排序就是timeline。把ParentID串起來就是調用棧。

實時分析:對單條日誌直接分析,不做匯總,重組。得到當前QPS,延遲。

離線分析:按TraceID匯總,通過Span的ID和ParentID還原調用關係,分析鏈路形態。

日誌中心架構

日誌分析是運維工程師解決系統故障,發現問題的主要手段。日誌主要包括系統日誌、應用程式日誌和安全日誌。系統運維和開發人員可以通過日誌了解伺服器軟硬體信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以了解伺服器的負荷,性能安全性,從而及時採取措施糾正錯誤。

通常,日誌被分散的儲存在不同的設備上。如果你管理數十上百臺伺服器,你還在使用依次登錄每臺機器的傳統方法查閱日誌,即繁瑣又效率低下。為此,我們使用集中化的日誌管理,將所有伺服器上的日誌收集匯總。

集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,這時實時日誌分析ELK平臺能夠完美的解決上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。

規範日誌與流水,問題追根溯源

作為一個微服務應用平臺除了提供支撐開發和運行的技術組件和框架之外,還應該提供一些運維友好的經驗總結,我們推薦的日誌與流水實現如下:

先來看日誌,平臺應提供的日誌主要有三種,系統日誌,引擎日誌還有跟蹤日誌。有了這些日誌,在出問題的時候能夠幫助我們獲取一些關鍵信息進行問題定位。

要想做到出了問題能夠追根溯源,那麼右邊的這些流水號的設計也是非常重要的,日誌與各種流水號配合,能夠讓我們快速定位問題發生的具體時間地點以及相關信息,能夠快速還原業務交易全鏈路。對這些日誌與流水的細節處理,對於系統運維問題定位有非常大的幫助,沒有這些有用的日誌內容,ELK日誌收集套件搭建的再漂亮,收一堆垃圾日誌也是沒用的。

通常開源框架只是提供個框架有開發人員自由發揮,而設計一個平臺則一定要考慮直接提供統一規範的基礎能力。

基於Spring Cloud Netflix的Zuul組件定製實現

異步非阻塞模式啟動的線程很少,基本上一個CPU core上只需啟一個處理線程,它使用的線程資源就很少,上下文切換(Context Switch)開銷也少。非阻塞模式可以接受的連接數大大增加,可以簡單理解為請求來了只需要進隊列,這個隊列的容量可以設得很大,只要不超時,隊列中的請求都會被依次處理。


API Gateway邏輯架構

API網關就像整個系統的門面一樣,所有的外部訪問都經過它實現調度、過濾、請求路由、負載均衡、校驗等等。

API Gateway 功能

API網關上還可以實現更多更複雜的功能。

8、IAM(Identity and Access Management)

IAM架構

IAM為企業提供統一的帳號管理視角,對所有基於帳號的管理、認證、授權、審計進行集中的統一管理,提高了帳號管理的安全,幫助系統管理員提高了工作效率,降低了管理負擔,同時改善了普通用戶在不同資源中登錄認證的重複繁瑣過程,為日常工作提供了更高的安全性。

統一用戶中心



IAM可以為企業所有的資源使用人員如普通用戶、系統管理人員、駐場代維人員、合作夥伴、臨時工作人員等定義主帳號,按照公司的組織方式對人員進行管理。通過一對一的主帳號管理模式,可以在該平臺實現對所有資源使用人員進行集中定義、集中維護等生命周期管理。


統一認證與鑑權



安全認證方面,我們基於Spring Security結合Auth2再加上JWT(Json web token)做安全令牌,實現統一的安全認證與鑑權,使得微服務之間能夠按需隔離和安全互通。認證鑑權一定是個公共的服務,而不是多個系統各自建設。

服務管理機制

服務註冊

在服務註冊時,需要確認下eureka.client.register-with-eureka=true參數是否正確,默認為true,若設置為false將不會啟動註冊操作。

服務同步

由於服務註冊中心之間因互相註冊為服務,當服務提供者發送註冊請求到一個服務註冊中心,它會將該請求轉發給集群中相連的其他註冊中心,從而實現註冊中心之間的服務同步。

服務續約

eureka.instance.lease-renewal-interval-in-seconds參數用於定義服務續約任務的調用間隔時間默認30秒。

eureka.instance.lease-exptration-duration-in-seconds參數用於定義服務失效時間,默認為90秒。

獲取服務

當我們啟動服務消費者時候,它會發送一個REST請求給服務註冊中心,來獲取上面註冊的服務清單。為了性能考慮,Eureka Server會維護一份只讀的服務清單來返回給客戶端,同時該緩存清單會每隔30秒更新一次。

服務調用

服務消費者在獲取服務清單後,通過服務名可以獲得具體提供服務的實例名和該實例的元數據。因為有這些服務實例的詳細信息,所以客戶端可以根據自己的需要決定具體調用哪個實例。

單服務異常導致雪崩

採用微服務架構後,服務之間會有錯綜複雜的依賴關係,例如,一個前端請求一般會依賴於多個後端服務。

在微服務架構中,存在著那麼多的服務單元,若一個單元出現故障,就很容易因依賴關係而引發故障的蔓延,最終導致整個系統的癱瘓,造成所謂的雪崩效應,這樣的架構較傳統架構更加不穩定。

自我保護



當網絡分區故障發生時,微服務與Eureka Server之間無法正常通信,而微服務本身是正常運行的,此時不應該移除這個微服務,所以引入了自我保護機制。

服務註冊到Eureka Server之後,會維護一個心跳連接,告訴Eureka Server自己還活著。Eureka Server在運行期間,會統計心跳失敗的比例在15分鐘之內是否低於85%,如果出現低於的情況,Eureka Server會將當前的實例註冊信息保護起來,讓這些實例不會過期,儘可能保護這些註冊信息。

服務容錯處理

資源隔離:包括線程池隔離和信號量隔離,限制調用分布式服務的資源使用,某一個調用的服務出現問題不會影響其他服務調用

降級機制:超時降級、資源不足時(線程或信號量)降級,降級後可以配合降級接口返回託底數據。

熔斷:當失敗率達到閥值自動觸發降級(如因網絡故障/超時造成的失敗率高),熔斷器觸發的快速失敗會進行快速恢復。

緩存:提供了請求緩存、請求合併實現。

精選提問:

問1:服務下線之後,eureka默認有30秒的心跳,怎麼做到優雅下線呢?

答:spring-boot-starter-actuator中提供了/shutdown的方式優雅下線。

問2:微服務中事物的一致性怎麼保證?

答:事務一致性保證:可靠事件模式、補償模式、TCC。

問3:hystrix不更新了,有別的替換組件嗎?

答:hystrix不更新,可以選擇Resilience4j和Sentinel。

問4:服務提供者a 往eureka註冊了服務,不希望 B 能看到這個服務。能做到嗎?

答:應用註冊到Eureka可以進行分組,服務消費端可以指定訪問目標應用的其中一個組內的實例。

問5:IAM的授權是全局的還是只是帳戶管理系統的,全局的怎麼實現資源和資源組的統一管理?

答:IAM提供統一帳戶管理,授權對企業來說是全局的。資源指的是應用功能權限的話,可以集中管理或者應用自治,按需選擇。

問6:微服務是否適合高並發實時數據的處理?

答:微服務是一種架構風格,具體裡面的應用可以是實時交易類、數據分析類,並沒有限制。

問7:微服務與大數據、分布式的關係,微服務對環境的要求是什麼,單機是否可以部署微服務?

答:微服務是一種架構風格,通常採用分布式部署。如果是做demo部署到單機沒問題。

問8:hystrix或sentinel能否做到對應用集群整體的流控/熔斷控制啊?

答:整體的熔斷一般手工做。比如通過負載均衡下線。流控hystrix貌似不管。建議流控在網關上做。

關於作者:黃豆,數位化金融研究院研究員,擅長系統分析和架構設計、金融三級密鑰安全體系及信息安全保障、虛擬化和雲計算技術、JavaEE技術;參與研發的神州商橋電子商務平臺獲得「全國電子商務示範單位」稱號;帶領團隊研發的國電通雲終端系統在國網多個省公司推廣應用。

關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!


普元金融出品金融技術系列課程——《金融技術四講》。7月5日起,每周五直播圖文微課堂,連續四周,不容錯過。也希望給其他行業有所啟發。


相關焦點

  • 微服務是什麼?十分鐘了解微服務架構
    過去幾年來,「微服務架構」這個術語出現了,它描述了一種將軟體應用程式設計為可獨立部署的服務套件的特定方式。儘管這種架構風格沒有確切的定義,但圍繞業務能力,自動化部署,端點智能以及語言和數據的分散控制等方面存在著某些共同特徵。「微服務」 - 在軟體架構擁擠的街道上又一個新名詞。
  • 「首席架構師看微服務架構」介紹NGINX的微服務參考架構
    考慮到這一切,NGINX專業服務部門正在開發NGINX微服務參考架構(MRA) - 一組可用於創建自己的微服務應用程式的模型。MRA由兩部分組成:三個模型中的每一個的詳細描述,以及實現我們的示例照片共享程序的可下載代碼,Ingenious。三種型號的唯一區別是用於為每種型號配置NGINX Plus的配置代碼。
  • 輕量級微服務架構及最佳部署
    微服務是一種應用系統架構,需要架構師圍繞業務進行設計。但是,我們絕不要為了微服務而去微服務。從事微服務架構工作的架構師,相比傳統架構的架構師而言,所要求的技能更加全面。他們不僅僅是系統架構師,也是業務分析師,他們的責任重大且挑戰艱巨。從大的方向來看,微服務架構師需要具備以下基本職責。(1)分析業務需求並切分微服務邊界。
  • 精讀| 什麼是微服務架構?
    什麼是微服務,為什麼越來越多的企業,為了使自己構建的應用滿足客戶的期望,而和微服務架構進行整合呢?什麼是微服務?微服務,又叫微服務架構,是一種軟體架構方式。它將應用構建成一系列按業務領域劃分模塊的、小的自治服務。
  • 微服務等於Spring Cloud?了解微服務架構和框架
    微服務架構的優點微服務架構有很多重要的優點。首先,它解決了複雜性問題。它將單體應用分解為一組服務。雖然功能總量不變,但應用程式已被分解為可管理的模塊或服務。這些服務定義了明確的RPC或消息驅動的API邊界。微服務架構強化了應用模塊化的水平,而這通過單體代碼庫很難實現。因此,微服務開發的速度要快很多,更容易理解和維護。
  • 「微服務架構」微服務架構中的數據一致性
    對帳是在金融領域工作的工程師所熟悉的技術。你有沒有想過銀行如何確保你的資金轉移不會丟失,或者兩個不同的銀行之間如何匯款?快速回答是對帳。在會計中,對帳是確保兩組記錄(通常是兩個帳戶的餘額)達成一致的過程。對帳用於確保離開帳戶的資金與實際支出的資金相匹配。這是通過確保在特定會計期間結束時餘額匹配來完成的。
  • 藍盟IT外包專家,雲端微服務架構下的運維思考
    本次峰會以軟體開發為主題,熊普江先生在「微服務與容器技術」專場與來賓分享了"雲端微服務架構的運維思考"的主題演講。本文圍繞微服務架構的特點與發展趨勢,結合微信業務在微服務架構上的探索、應用、改進與提升,闡述運維如何應對業務在微服務架構環境下的各種挑戰。
  • SDCC 2017輕量級微服務架構實踐之路專場介紹
    在這十大技術專題中,《輕量級微服務架構實踐之路》無疑將是其中的一個焦點。這是因為微服務是近年來炙手可熱的技術領域,眾多企業都希望通過在分散的組件中使用微服務架構和平臺使部署、管理和服務功能交付變得更加簡單。然而,微服務的實際應用絕不像描述的那樣簡單,單單就如何有效拆分應用,就是一件非常困難的事情,更不用說像數據一致性、微服務應用測試等其他問題了。
  • 雲計算和微服務關係 - CSDN
    業務場景、用戶習慣和行為在迅速變化,許多傳統行業線上業務出現急速增長。比如金融行業的行動支付、網際網路理財等,汽車製造行業的營銷、電商、售後服務等線上業務比例迅速提高。IT團隊業務開發、迭代都以每月、甚至每周來計,需要7*24小時響應,這些給系統開發和運維帶來極大挑戰。在IT對業務的響應和支撐方面,不同行業所面臨的困擾略有不同,但總體差異不明顯。
  • 微服務架構設計實踐總結和思考
    本文談談在微服務架構設計中的一些實踐和思考。對於SOA和微服務,我前面很多文章都進行了詳細的闡述,今天這篇文章重點還是放在一些架構設計和實踐的一些關鍵點思考上面。再次強調,微服務架構核心是傳統單體應用大拆小,同時拆分為小的微服務後相互之間以輕量的API接口進行通信。而這個拆分本身又分了多個方面。
  • 微服務,Java目前很火熱的系統架構
    學習內容安排如下: 系統架構的演化:集中式架構、分布式架構。 服務之間的調用方式:HTTP和RPC。當然系統架構肯定不是說我一篇文章就能學好的,只能說我作為一名初學者,是如何去理解這些概念的。至於想要真正地去弄懂這些,需要自己長期性地不斷學習,非一朝一夕就能學完的。一、系統架構概述技術更新是非常快的,從單一應用到垂直細分,到分布式,到SOA,以及微服務架構。
  • 放棄Dubbo,選擇最流行的Spring Cloud微服務架構實踐與經驗總結
    03技術選型靈活微服務架構下,技術選型是去中心化的。每個團隊可以根據自身服務的需求和行業發展的現狀,自由選擇最適合的技術棧。由於每個微服務相對簡單,所以需要對技術棧進行升級時所面臨的風險就較低,甚至完全重構一個微服務也是可行的。
  • 微服務架構的分布式容錯 · SOSP 2019
    S 模型與微服務架構微服務架構的複雜性來源於服務之間的大量交互以及網絡請求的不確定性,調用路徑上的任何服務超時或者宕機都可能影響用戶請求的處理,服務的宕機也可能會造成用戶無法感知請求的結果、系統處於異常狀態並無法回滾等問題。
  • 工商銀行基於 Dubbo 構建金融微服務架構的實踐 - 服務發現篇
    作者 | 張遠徵來源|阿里巴巴雲原生公眾號導讀:Dubbo 作為分布式微服務框架,眾多公司在實踐中基於 Dubbo 進行分布式系統架構。本文是工商銀行基於 Dubbo 構建金融微服務架構的分享,主要講述了服務發現的應對策略和成果,後續將發布工行大規模服務監控治理的實踐,以及從企業角度怎麼去對 Dubbo 二次開發等內容。歡迎關注。
  • 微服務架構春天 微軟Service Fabric開源
    微軟在去年也宣布即將公布自己的微服務架構,當時開源了 Service Fabric的.NET SDK 部分,而轉眼一年時間已經過去了,微軟終於在上周開源了自己的Service Fabric。Github截圖  微服務架構優勢一般為複雜可控、靈活可擴展、獨立部署、開發展對性強等等,當然最重要的還有降低TCO。
  • 宇信科技:公司繼續在基於微服務架構的統一開發平臺方向上加大研發...
    來源:同花順金融研究中心同花順(300033)金融研究中心12月4日訊,有投資者向宇信科技(300674)提問, 能否介紹下公司在研發方面的投入,2020年在IT行業的研發是否有進一步加大?公司繼續在基於微服務架構的統一開發平臺方向上加大研發投入,提升了前端的快速配置開發能力,後端與華為鯤鵬架構、百度金融雲完成了兼容性認證,平臺底座完全支持兼容國產化作業系統和資料庫,該平臺目前已推廣了80餘家銀行和泛金融客戶,使得公司在分布式架構下的各個產品重構和升級過程中,顯著提升了開發效率。
  • SpringCloud:分布式微服務架構
    概念微服務是一種架構風格,它是一種將一個單一應用程式開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常採用http)。特徵每個微服務可獨立運行在自己的進程中。一系列獨立運行的微服務共同構建起整個系統。每個服務為獨立的業務開發,一個微服務只關注某個特定的功能。
  • 基於 Spring Boot 和 Spring Cloud 實現微服務架構
    我的學習是先從Spring boot開始的,然後接觸到微服務架構,當然,這一切最大的啟迪還是感謝我的一個老師,是他給我指明了新的道路,讓我眼前一亮,再次感謝。Smart endpoints and dumb pipes本質就是去ESB,把所有的「思考」邏輯包括路由、消息解析等放在服務內部(Smart endpoints),去掉一個大一統的ESB,服務間輕(dumb pipes)通信,是比SOA更徹底的拆分。在此我向大家推薦一個架構學習交流群。
  • 微服務架構及其最重要的 10 個設計模式
    微服務架構的設計模式獨享資料庫(Database per Microservice)當一家公司將大型單體系統替換成一組微服務,首先要面臨的最重要決策是關於資料庫。單體架構會使用大型中央資料庫。即使轉移到微服務架構許多架構師仍傾向於保持資料庫不變。
  • 【CTO講堂】微服務架構在雲端的應用
    在架構、安全、產品、管理領域有一些經驗,喜歡研究新技術,擅長技術和產品深度結合。主持人:歡迎您~看您曾經在澳客網擔任CTO/CEO,在網際網路行業打拼12年,也算是一枚老兵了,在什麼情況下你決定開始創業?最初的想法是怎樣的?