放棄Dubbo,選擇最流行的Spring Cloud微服務架構實踐與經驗總結

2020-12-11 51CTO

【51CTO.com原創稿件】Spring Cloud 在國內中小型公司能用起來嗎?從 2016 年初一直到現在,我們在這條路上已經走了一年多。

在使用 Spring Cloud 之前,我們對微服務實踐是沒有太多的體會和經驗的。從最初的開源軟體雲收藏來熟悉 Spring Boot,到項目中的慢慢使用,再到***全面擁抱 Spring Cloud。

這篇文章給大家介紹我們使用 Spring Boot / Cloud 一年多的經驗總結。

在開始之前我們先介紹幾個概念,什麼是微服務,它的特點是什麼? Spring Boot / Cloud 都做了那些事情?他們三者之間又有什麼關係?

什麼是微服務

微服務的概念源於 2014 年 3 月 Martin Fowler 所寫的一篇文章「Microservices」。文中內容提到:微服務架構是一種架構模式,它提倡將單一應用程式劃分成一組小的服務,服務之間互相協調、互相配合,為用戶提供最終價值。

每個服務運行在其獨立的進程中,服務與服務間採用輕量級的通信機制互相溝通(通常是基於 HTTP 的 RESTful API)。每個服務都圍繞著具體業務進行構建,並且能夠被獨立地部署到生產環境、類生產環境等。

另外,應儘量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建。

微服務是一種架構風格,一個大型複雜軟體應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。在所有情況下,每個任務代表著一個小的業務能力。

微服務架構優勢

01複雜度可控

在將應用分解的同時,規避了原本複雜度無止境的積累。每一個微服務專注於單一功能,並通過定義良好的接口清晰表述服務邊界。

由於體積小、複雜度低,每個微服務可由一個小規模開發團隊完全掌控,易於保持高可維護性和開發效率。

02獨立部署

由於微服務具備獨立的運行進程,所以每個微服務也可以獨立部署。當某個微服務發生變更時無需編譯、部署整個應用。

由微服務組成的應用相當於具備一系列可並行的發布流程,使得發布更加高效,同時降低對生產環境所造成的風險,最終縮短應用交付周期。

03技術選型靈活

微服務架構下,技術選型是去中心化的。每個團隊可以根據自身服務的需求和行業發展的現狀,自由選擇最適合的技術棧。

由於每個微服務相對簡單,所以需要對技術棧進行升級時所面臨的風險就較低,甚至完全重構一個微服務也是可行的。

04容錯

當某一組件發生故障時,在單一進程的傳統架構下,故障很有可能在進程內擴散,形成應用全局性的不可用。

在微服務架構下,故障會被隔離在單個服務中。若設計良好,其他服務可通過重試、平穩退化等機制實現應用層面的容錯。

05擴展

單塊架構應用也可以實現橫向擴展,就是將整個應用完整的複製到不同的節點。當應用的不同組件在擴展需求上存在差異時,微服務架構便體現出其靈活性,因為每個服務可以根據實際需求獨立進行擴展。

什麼是 Spring Boot

Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。

用我的話來理解,就是 Spring Boot 不是什麼新的框架,它默認配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架(不知道這樣比喻是否合適)。

Spring Boot 簡化了基於 Spring 的應用開發,通過少量的代碼就能創建一個獨立的、產品級別的 Spring 應用。Spring Boot 為 Spring 平臺及第三方庫提供開箱即用的設置,這樣你就可以有條不紊地開始。

Spring Boot 的核心思想就是約定大於配置,多數 Spring Boot 應用只需要很少的 Spring 配置。採用 Spring Boot 可以大大的簡化你的開發模式,所有你想集成的常用框架,它都有對應的組件支持。

Spring Cloud 都做了哪些事

Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 Spring Boot 的開發風格做到一鍵啟動和部署。

Spring 並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過 Spring Boot 風格進行再封裝、屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。

以下為 Spring Cloud 的核心功能:

  • 分布式/版本化配置。
  • 服務註冊和發現。
  • 路由。
  • 服務和服務之間的調用。
  • 負載均衡。
  • 斷路器。
  • 分布式消息傳遞。

我們再來看一張圖:

解釋一下這張圖中各組件的運行流程:

  • 所有請求都統一通過 API 網關(Zuul)來訪問內部服務。
  • 網關接收到請求後,從註冊中心(Eureka)獲取可用服務。
  • 由 Ribbon 進行均衡負載後,分發到後端的具體實例。
  • 微服務之間通過 Feign 進行通信處理業務。
  • Hystrix 負責處理服務超時熔斷。
  • Turbine 監控服務間的調用和熔斷相關指標。

當然上面只是 Spring Cloud 體系的一部分,Spring Cloud 共集成了 19 個子項目,裡面都包含一個或者多個第三方的組件或者框架!

Spring Cloud 工具框架:

  • Spring Cloud Config,配置中心,利用 git 集中管理程序的配置。
  • Spring Cloud Netflix,集成眾多 Netflix 的開源軟體。
  • Spring Cloud Bus,消息總線,利用分布式消息將服務和服務實例連接在一起,用於在一個集群中傳播狀態的變化 。
  • Spring Cloud for Cloud Foundry,利用 Pivotal Cloudfoundry 集成你的應用程式。
  • Spring Cloud Foundry Service Broker,為建立管理雲託管服務的服務代理提供了一個起點。
  • Spring Cloud Cluster,基於 Zookeeper、Redis、Hazelcast、Consul 實現的領導選舉和平民狀態模式的抽象和實現。
  • Spring Cloud Consul,基於 Hashicorp Consul 實現的服務發現和配置管理。
  • Spring Cloud Security,在 Zuul 代理中為 OAuth2 rest 客戶端和認證頭轉發提供負載均衡。
  • Spring Cloud Sleuth Spring Cloud,應用的分布式追蹤系統和 Zipkin、HTrace、ELK 兼容。
  • Spring Cloud Data Flow,一個雲本地程序和操作模型,組成數據微服務在一個結構化的平臺上。
  • Spring Cloud Stream,基於 Redis、Rabbit、Kafka 實現的消息微服務,簡單聲明模型用以在 Spring Cloud 應用中收發消息。
  • Spring Cloud Stream App Starters,基於 Spring Boot 為外部系統提供 Spring 的集成。
  • Spring Cloud Task,短生命周期的微服務,為 Spring Boot 應用簡單聲明添加功能和非功能特性。
  • Spring Cloud Task App Starters。
  • Spring Cloud Zookeeper,服務發現和配置管理基於 Apache Zookeeper。
  • Spring Cloud for Amazon Web Services,快速和亞馬遜網絡服務集成。
  • Spring Cloud Connectors,便於 PaaS 應用在各種平臺上連接到後端像資料庫和消息經紀服務。
  • Spring Cloud Starters,項目已經終止並且在 Angel.SR2 後的版本和其他項目合併。
  • Spring Cloud CLI,插件用 Groovy 快速的創建 Spring Cloud 組件應用。

這個數量還在一直增加...

三者之間的關係

微服務是一種架構的理念,提出了微服務的設計原則,從理論為具體的技術落地提供了指導思想。

Spring Boot 是一套快速配置腳手架,可以基於 Spring Boot 快速開發單個微服務。

Spring Cloud 是一個基於 Spring Boot 實現的服務治理工具包;Spring Boot 專注於快速、方便集成的單個微服務個體;Spring Cloud 關注全局的服務治理框架。

Spring Boot / Cloud 是微服務實踐的***落地方案。

Spring Boot / Cloud 微服務實踐背景

2015 年初的時候,因為公司業務的大量發展,我們開始對原有的業務進行拆分,新上的業務線也全部使用獨立的項目來開發,項目和項目之間通過 http 接口進行訪問。

2015 年的業務發展非常迅速,項目數量也就相應急劇擴大,到了年底的時候項目達 60 多個,當項目數達到 30 幾個的時候,我們就遇到了問題,經常某個項目因為擴展增加了新的 IP 地址,就需要被動的更新好幾個相關的項目。

服務越來越多,服務之間的調用關係也越來越複雜,有時候想畫一張圖來表示項目和項目之間的依賴關係,線條密密麻麻無法看清。下面有一張圖可以表達我們的心情:

這個時候我們就想找一種方案,可以將我們這麼多分布式的服務給管理起來,到網上進行了技術調研我們發現有兩款開源軟體比較適合我們,一個是 Dubbo,另一個是 Spring Cloud。

剛開始我們是走了一些彎路的,這兩款框架我們都不熟悉,當時國內使用 Spring Cloud 進行開發的企業非常的少,我在網上也幾乎沒找到太多應用的案例。但是 Dubbo 在國內的使用還是挺普遍的,相關的資料各方面都比較完善。

因此在公司擴展新業務線眾籌平臺的時候,技術選型就先定了 Dubbo,因為也是全新的業務沒有什麼負擔,這個項目我們大概開發了 6 個月投產,上線之初也遇到了一些問題,但最終還比較順利。

在新業務線選型使用 Dubbo 的同時,我們也沒有完全放棄 Spring Cloud,我們抽出了一兩名開發人員學習 Spring Boot,我也參與其中。

為了驗證 Spring Boot 是否可以到達實戰的標準,我們在業餘的時間使用 Spring Boot 開發了一款開源軟體雲收藏,經過這個項目的實戰驗證我們對 Spring Boot 就有了信心。

最重要的是大家體會到使用 Spring Boot 的各種便利之後,就再也不想使用傳統的方式來進行開發了。

但是還有一個問題,在選擇了 Spring Boot 進行新業務開發的同時,並沒有解決我們上面的那個問題,服務與服務直接調用仍然比較複雜和傳統,這時候我們就開始研究 Spring Cloud。

因為大家在前期對 Spring Boot 有了足夠的了解,因此學習 Spring Cloud 就顯得順風順水了。所以在使用 Dubbo 半年之後,我們又全面開始擁抱 Spring Cloud。

為什麼選擇使用 Spring Cloud 而放棄了 Dubbo

可能大家會問,為什麼選擇了使用 Dubbo 之後,又選擇全面使用 Spring Cloud 呢?其中有如下四個原因:

01從兩個公司的背景來談

Dubbo,是阿里巴巴服務化治理的核心框架,並被廣泛應用於中國各網際網路公司;Spring Cloud 是大名鼎鼎的 Spring 家族的產品。

阿里巴巴是一個商業公司,雖然也開源了很多的***的項目,但從整體戰略上來講,仍然是服務於自身的業務為主。

Spring 專注於企業級開源框架的研發,不論是在中國還是在世界上使用都非常廣泛,開發出通用、開源、穩健的開源框架是他們的主業。

02從社區活躍度這個角度來對比

Dubbo 雖然也是一個非常優秀的服務治理框架,並且在服務治理、灰度發布、流量分發這方面做的比 Spring Cloud 還好,除過當當網在此基礎上增加了 rest 支持外,已有兩年多的時間幾乎沒有任何更新了。

在使用過程中出現問題,開發者提交到 GitHub 的 Issue 也少有回覆。相反 Spring Cloud 自從發展到現在,仍然在不斷的高速發展。

從 GitHub 上提交代碼的頻度和發布版本的時間間隔就可以看出,現在 Spring Cloud 即將發布 2.0 版本,到了後期會更加完善和穩定。

03從整個大的平臺架構來講

Dubbo 框架只是專注於服務之間的治理,如果我們需要使用配置中心、分布式跟蹤這些內容都需要自己去集成,這樣無形中增加了使用 Dubbo 的難度。

Spring Cloud 幾乎考慮了服務治理的方方面面,更有 Spring Boot 這個大將的支持,開發起來非常的便利和簡單。

04從技術發展的角度來講

Dubbo 剛出來的那會技術理念還是非常先進,解決了各大網際網路公司服務治理的問題,中國的各中小公司也從中受益不少。

經過了這麼多年的發展,網際網路行業也是湧現了更多先進的技術和理念,Dubbo 一直停滯不前,自然有些掉隊,有時候我個人也會感到有點可惜,如果 Dubbo 一直沿著當初的那個路線發展,並且延伸到周邊,今天可能又是另一番景象了。

Spring 推出Spring Boot / Cloud 也是因為自身的很多原因。Spring 最初推崇的輕量級框架,隨著不斷的發展也越來越龐大,隨著集成項目越來越多,配置文件也越來越混亂,慢慢的背離最初的理念。

隨著這麼多年的發展,微服務、分布式鏈路跟蹤等更多新的技術理念的出現,Spring 急需一款框架來改善以前的開發模式,因此才會出現 Spring Boot / Cloud 項目。

我們現在訪問 Spring 官網,會發現 Spring Boot 和 Spring Cloud 已經放到首頁最重點突出的三個項目中的前兩個,可見 Spring 對這兩個框架的重視程度。

因此 Dubbo 曾經確實很牛逼,但是 Spring Cloud 是站在近些年技術發展之上進行的開發,因此更具技術代表性。

如何進行微服務架構演進

當我們將所有的新業務都使用 Spring Cloud 這套架構之後,就會出現這樣一個現象:公司的系統被分成了兩部分,一部分是傳統架構的項目;另一部分是微服務架構的項目,如何讓這兩套配合起來使用就成為了關鍵。

這時候 Spring Cloud 裡面的一個關鍵組件解決了我們的問題,就是 Zuul。在 Spring Cloud 架構體系內的所有微服務都通過 Zuul 來對外提供統一的訪問入口,所有需要和微服務架構內部服務進行通訊的請求都走統一網關。如下圖:

從上圖可以看出我們對服務進行了四種分類,不同服務遷移的優先級不同:

  • 基礎服務,是一些基礎組件,與具體的業務無關。比如:簡訊服務、郵件服務。這裡的服務最容易摘出來做微服務,也是我們***優先級分離出來的服務。
  • 業務服務,是一些垂直的業務系統,只處理單一的業務類型,比如:風控系統、積分系統、合同系統。
  • 這類服務職責比較單一,根據業務情況來選擇是否遷移,比如:如果突然有需求對積分系統進行大優化,我們就趁機將積分系統進行改造,是我們的第二優先級分離出來的服務。
  • 前置服務,前置服務一般為服務的接入或者輸出服務,比如網站的前端服務、app 的服務接口這類,這是我們第三優先級分離出來的服務。

組合服務,組合服務就是涉及到了具體的業務,比如買標過程,需要調用很多垂直的業務服務,這類的服務我們一般放到***再進行微服務化架構來改造,因為這類服務最為複雜,除非涉及到大的業務邏輯變更,我們是不會輕易進行遷移。

在這四類服務之外,新上線的業務全部使用 Sprng Boot / Cloud 這套技術棧。

架構演化的步驟

架構演化的步驟如下:

  • 在確定使用Spring Boot / Cloud 這套技術棧進行微服務改造之前,請先梳理平臺的服務,對不同的服務進行分類,以確認演化的節奏。
  • 先讓團隊熟悉 Spring Boot 技術,並且優先在基礎服務上進行技術改造,推動改動後的項目投產上線。
  • 當團隊熟悉 Spring Boot 之後,再推進使用 Spring Cloud 對原有的項目進行改造。
  • 在進行微服務改造過程中,優先應用於新業務系統,前期可以只是少量的項目進行了微服務化改造,隨著大家對技術的熟悉度增加,可以加快加大微服務改造的範圍。

傳統項目和微服務項目共存是一個很常見的情況,除非公司業務有大的變化,不建議直接遷移核心項目。

服務拆分

服務拆分的兩個原則:

  • 橫向拆分。按照不同的業務域進行拆分,例如訂單、營銷、風控、積分資源等,形成獨立的業務領域微服務集群。
  • 縱向拆分。把一個業務功能裡的不同模塊或者組件進行拆分。例如把公共組件拆分成獨立的原子服務,下沉到底層,形成相對獨立的原子服務層。這樣一縱一橫,就可以實現業務的服務化拆分。

要做好微服務的分層:梳理和抽取核心應用、公共應用,作為獨立的服務下沉到核心和公共能力層,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。

服務拆分是越小越好嗎?微服務的大與小是相對的。比如在初期,我們把交易拆分為一個微服務,但是隨著業務量的增大,可能一個交易系統已經慢慢變得很大,並且並發流量也不小。

為了支撐更多的交易量,我會把交易系統,拆分為訂單服務、投標服務、轉讓服務等。因此微服務的拆分力度需與具體業務相結合,總的原則是服務內部高內聚,服務之間低耦合。

微服務 vs 傳統開發

使用微服務有一段時間了,這種開發模式和傳統的開發模式對比,有很大的不同,如下面幾點:

  • 分工不同,以前我們可能是一個一個模塊,現在可能是一人一個系統。
  • 架構不同,服務的拆分是一個技術含量很高的問題,拆分是否合理對以後發展影響巨大。
  • 部署方式不同,如果還像以前一樣部署估計累死了,自動化運維不可不上。
  • 容災不同,好的微服務可以隔離故障避免服務整體 down 掉,壞的微服務設計仍然可以因為一個子服務出現問題導致連鎖反應。

給資料庫帶來的挑戰

每個微服務都有自己獨立的資料庫,那麼後臺管理的聯合查詢怎麼處理?這是大家普遍遇到的一個問題。

有如下三種處理方案:

  • 嚴格按照微服務的劃分來做,微服務相互獨立,各微服務資料庫也獨立,後臺需要展示數據時,調用各微服務的接口來獲取對應的數據,再進行數據處理後展示出來,這是標準的用法,也是最麻煩的用法。
  • 將業務相關的表放到一個庫中,將業務無關的表嚴格按照微服務模式來拆分,這樣既可以使用微服務,也避免了資料庫各種切換導致後臺統計難以實現,是一個折中的方案。
  • 資料庫嚴格按照微服務的要求來切分,以滿足業務高並發,實時或者準實時將各微服務資料庫數據同步到 NoSQL 資料庫中,在同步的過程中進行數據清洗,用來滿足後臺業務系統的使用,推薦使用 Mongodb、Hbase 等。

三種方案在不同的公司我都使用過,***種方案適合業務較為簡單的小公司;第二種方案,適合想在原有系統之上,慢慢演化為微服務架構的公司;第三種適合大型高並發的網際網路公司。

微服務的經驗和建議

01建議儘量不要使用 Jsp,頁面開發推薦使用 Thymeleaf

Web 項目建議獨立部署 Tomcat,不要使用內嵌的 Tomcat,內嵌 Tomcat 部署 Jsp 項目會偶現龜速訪問的情況。

02服務編排是個好東西,主要的作用是減少項目中的相互依賴

比如現在有項目 a 調用項目 b,項目 b 調用項目 c...一直到 h,是一個調用鏈,那麼項目上線的時候需要先更新***層的 h 再更新 g...更新 c 更新 b ***是更新項目 a。

這只是一個調用鏈,在複雜的業務中有非常多的調用,如果要記住每一個調用鏈對開發運維人員來說就是災難。

有一個好辦法可以儘量的減少項目間的相互依賴,就是服務編排,一個核心的業務處理項目,負責和各個微服務打交道。

比如之前是 a 調用 b,b 掉用 c,c 調用 d,現在統一在一個核心項目 W 中來處理,W 服務使用 a 的時候去調用 b,使用 b 的時候W去調用 c。

舉個例子:在第三方支付業務中,有一個核心支付項目是服務編排,負責處理支付的業務邏輯,W 項目使用商戶信息的時候就去調用「商戶系統」,需要校驗設備的時候就去調用「終端系統」,需要風控的時候就調用「風控系統」,各個項目需要的依賴參數都由W來做主控。以後項目部署的時候,只需要***啟動服務編排項目即可。

03不要為了追求技術而追求技術

需要考慮以下幾方面的因素:

  • 團隊的技術人員是否已經具備相關技術基礎。
  • 公司業務是否適合進行微服務化改造,並不是所有的平臺都適合進行微服務化改造,比如:傳統行業有很多複雜垂直的業務系統。
  • Spring Cloud 生態的技術有很多,並不是每一種技術方案都需要用上,適合自己的才是***的。

總結

Spring Cloud 對於中小型網際網路公司來說是一種福音,因為這類公司往往沒有實力或者沒有足夠的資金投入去開發自己的分布式系統基礎設施,使用 Spring Cloud 一站式解決方案能在從容應對業務發展的同時大大減少開發成本。

同時,隨著近幾年微服務架構和 Docker 容器概念的火爆,也會讓 Spring Cloud 在未來越來越「雲」化的軟體開發風格中立有一席之地。

尤其是在目前五花八門的分布式解決方案中提供了標準化的、全站式的技術方案,意義可能堪比當前 Servlet 規範的誕生,有效推進服務端軟體系統技術水平的進步。

張強

第三方支付公司資深架構師

網名純潔的微笑,曾經先後在網際網路金融、第三方支付公司擔任高級 Java 工程師、架構師、技術經理、技術負責人等職務。在網際網路金融領域工作期間,從零參與公司技術平臺建設,組織平臺進行過四次大架構升級,目前在一家第三方支付公司做架構師,負責支付公司大數據平臺建設。

【51CTO原創稿件,合作站點轉載請註明原文作者和出處為51CTO.com】

【編輯推薦】

【責任編輯:

武曉燕

TEL:(010)68476606】

點讚 0

相關焦點

  • 實現微服務架構最流行Style,Spring Boot+Spring Cloud
    Spring cloud子項目目前來說spring主要集中於spring boot(用於開發微服務)和spring cloud相關框架的開發,我們從幾張圖著手理解,然後再具體介紹:微服務的流行,Martin功不可沒,這老頭也是個奇人,特別擅長抽象歸納和製造概念,我覺的這就是最牛逼的markting啊,感覺這也是目前國人欠缺的能力。
  • 基於 Spring Boot 和 Spring Cloud 實現微服務架構
    Spring Boot:旨在簡化創建產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web伺服器,含有諸多開箱即用微服務功能,可以和spring cloud聯合部署。Spring cloud子項目目前來說spring主要集中於spring boot(用於開發微服務)和spring cloud相關框架的開發,我們從幾張圖著手理解,然後再具體介紹:
  • 基於Spring Boot和Spring Cloud實現微服務架構
    Spring cloud子項目目前來說spring主要集中於spring boot(用於開發微服務)和spring cloud相關框架的開發,我們從幾張圖著手理解,然後再具體介紹:WHAT - 什麼是微服務微服務簡介微服務的流行,Martin功不可沒,這老頭也是個奇人,特別擅長抽象歸納和製造概念,我覺的這就是最牛逼的markting啊,感覺這也是目前國人欠缺的能力。
  • 基於Spring Boot和Spring Cloud實現微服務架構學習
    原文地址:http://blog.csdn.net/enweitech/article/details/52582918看了幾周spring相關框架的書籍和官方demo,是時候開始總結下這中間的學習感悟。首先,最想說的是,當你要學習一套最新的技術時,官網的英文文檔是學習的最佳渠道。
  • Spring Cloud與Dubbo優缺點詳解
    從系統結構簡易程度考慮Spring Cloud的系統結構更簡單,「註冊+springmvc=springcloud」,而 Dubbo 各種複雜的 URL、protocol、register、invocation、dubbofilter、dubboSPI,dubbo
  • 厲害了,教你用 Spring Cloud 實現微服務
    Spring cloud子項目目前來說spring主要集中於spring boot(用於開發微服務)和spring cloud相關框架的開發,我們從幾張圖著手理解,然後再具體介紹:微服務的流行,Martin功不可沒,這老頭也是個奇人,特別擅長抽象歸納和製造概念,我覺的這就是最牛逼的markting啊,感覺這也是目前國人欠缺的能力。
  • 基於Spring Boot+Cloud構建微雲架構
    Spring cloud子項目目前來說spring主要集中於spring boot(用於開發微服務)和spring cloud相關框架的開發,我們從幾張圖著手理解,然後再具體介紹:微服務的流行,Martin功不可沒,這老頭也是個奇人,特別擅長抽象歸納和製造概念,我覺的這就是最牛逼的markting啊,感覺這也是目前國人欠缺的能力。
  • SpringCloud常見面試題(2020最新版)
    近些年來,微服務架構逐漸取代了單體架構,且這種趨勢將會越來越流行。Spring Cloud是目前最常用的微服務開發框架,已經在企業級開發中大量的應用。什麼是Spring Cloud Spring Cloud是一系列框架的有序集合。
  • Spring Cloud Alibaba 發布 GA 版本,新增 4 個模塊
    版本概要概要: 增加了 4 個新的模塊:spring-cloud-alibaba-dubbo、spring-cloud-alibaba-seata、spring-cloud-alibaba-sentinel-zuul 以及 spring-cloud-alicloud-sms。
  • 擁抱Kubernetes,再見了Spring Cloud
    相信很多Java從業者在熟悉了微服務開發後,自以為用 Spring Cloud 已經成功打造了微服務架構帝國,Java 已經壟斷微服務領域,殊不知當引入 k8s 後,Spring Cloud 卻和 Cloud Native
  • 初識Spring Cloud Stream,什麼是消息驅動微服務框架
    滿足以上特性的系統代表著一種鬆耦合的架構,通常被稱為事件驅動架構,而這裡的事件也可以被理解是服務與服務之間發送的一種消息。事件驅動架構本質上是一種架構設計風格,實現方法和工具有很多。在 Spring Cloud 家族中這個工具就是 Spring Cloud Stream。
  • 美團T9都說太「強」了,以微服務分布式的實戰詳解SpringCloud
    隨著微服務架構的興起,國內的IT企業特別是網際網路公司近年來都逐步引入了微服務技術並使其在實踐中落地,實施微服務架構最流行的方案非SpringCloud莫屬。從企業的真實需求出發,理論結合實際,深入講解SpringCloud微服務和分布式系統的知識。
  • 阿里P8架構師整理總結:Spring+SpringBoot+SpringCloud技術文檔
    很多研發人員把spring看作心目中最好的java項目,沒有之一。所以這是重點也是難點,工作中必須會,面試時肯定考。今天給大家介紹的內容主要包括三大部分:spring實戰(第4版)、spring boot2精髓、Spring Cloud 微服務架構進階,希望大家能夠喜歡!!!spring實戰(第4版)本文分為4部分。
  • 使用Spring Cloud Data Flow 來實現數據流處理
    隨著雲原生、微服務應用等的概念的逐漸深入人心,很多企業用戶都已經在使用Spring Boot和Spring Cloud等流行的開源技術框架來開發Java微服務,實現很多在線事務處理
  • springcloud五大組件
    首先我們來看springcloud是什麼?它是微服務架構集大成者,基於springboot構建,可以將一系列優秀組件進行完美整合。對熟悉的程式設計師來說,上手不麻煩,對新手來說,就需要了解springcloud架構再去學習。
  • SpringCloud:分布式微服務架構
    概念微服務是一種架構風格,它是一種將一個單一應用程式開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常採用http)。這些服務圍繞業務能力構建並且可通過全自動部署機制獨立部署,這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發,使用不同的數據存儲技術。特徵每個微服務可獨立運行在自己的進程中。一系列獨立運行的微服務共同構建起整個系統。
  • springcloud實踐二:gateway網關詳解
    微服務框架當前大行其道,網關在微服務架構中是一個非常重要的部分,網關一般作為項目的統一請求入口提供給前端開發人員,前端開發人員不用知道每個微服務的請求地址。網關可以統一對所有請求做過濾、限流、負載均衡、監控等處理,而不必在每個微服務項目重複處理請求。
  • 再見了Spring Cloud!這個架構有點厲害,甚至幹掉了Dubbo!
    Spring Cloud項目的相關經驗,肯定會打動面試官,現在呢?但如果你沒辦法完全答出這些問題,我建議你聽聽這三天的課,來提升一下自己的核心競爭力,這三節課就是《3天阿里微服務架構專題特訓營》,從阿里微服務架構實戰到源碼級別深度講解!
  • 從零搭建 Spring Cloud 服務(超詳細)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫這裡會介紹很多基礎知識,直接想開始搭建微服務的可以看第二章,微服務的搭建。直接看第二章不會有什麼影響,可以先學會開車再學習車的構造的,看個人習慣來。