您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何理解SpringCloud微服務架構”,在日常操作中,相信很多人在如何理解SpringCloud微服務架構問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解SpringCloud微服務架構”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
現如今微服務架構十分流行,而采用微服務構建系統也會帶來更清晰的業務劃分和可擴展性。同時,支持微服務的技術棧也是多種多樣的,而Spring Cloud就是這些技術中的翹楚。
作為新一代的服務框架,Spring Cloud提出的口號是開發“面向云環境的應用程序”,它為微服務架構提供了更加全面的技術支持。而且作為Spring的拳頭項目,它也能夠與Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring項目完美融合,這些對于微服務而言是至關重要的。
今天就給大家分享大概講的最全最通俗易懂的spring cloud視頻
SpringCloud微服務架構實戰
https://www.ixigua.com/6895923297481916939
在系統架構與設計的實踐中,從宏觀上可以總結為三個階段;
集中式架構:就是把所有的功能、模塊都集中到一個項目中,部署在一臺服務器上,從而對外提供服務(單體架構、單體服務、單體應用);
直白一點:就是只有一個項目,只有一個war;
分布式架構:就是把所有的功能、模塊拆分成不同的子項目,部署在多臺不同的服務器上,這些子項目相互協作共同對外提供服務。
直白一點:就是有很多項目,有很多war包,這些項目相互協作完成需要的功能,不是一 個war能完成的,一個war包完成不了;
Shop項目:單體應用
Shop項目:拆分--> (user-center, order-center, trade-center) 分布式應用
微服務架構:分布式強調系統的拆分,微服務也是強調系統的拆分,微服務架構屬于分布式架構的范疇;
并且到目前為止,微服務并沒有一個統一的標準的定義,那么微服務究竟是什么?
微服務一詞源于 Martin Fowler(馬丁.福勒)的名為 Microservices 的博文,可以在他的官方博客上找到這篇文章:
http://martinfowler.com/articles/microservices.html
中文翻譯版本:
https://www.martinfowler.cn/articles/microservices.html
簡單地說, 微服務是系統架構上的一種設計風格, 它的主旨是將一個原本獨立的系統拆分成多個小型服務,這些小型服務都在各自獨立的進程中運行,服務之間通過基于 HTTP 的 RESTful API 進行通信協作;
(dubbo -->dubbo協議 ) RESTful API (controller --> 調用 congtroller)
被拆分后的每一個小型服務都專注于完成系統中的某一項業務功能,職責單一, 并且每個服務都是一個獨立的項目,可以進行獨立的測試、開發和部署等;
由于各個獨立的服務之間使用的是基于 HTTP 的 JSON 作為數據通信協作的基礎,所以這些微服務也可以使用不同的語言來開發;
比如:項目里面有User模塊和Order模塊,但是User模塊和Order模塊并沒有直接關系,僅僅只是一些數據需要交互,那么就可以把這2個模塊單獨分開來,當user需要調用order的時候,order是一個服務方,但是order需要調用user的時候,user又是服務方了, 所以,它們并不在乎誰是服務方誰是調用方,他們都是2個獨立的服務,這就是微服務的概念;
分布式,就是將巨大的一個系統劃分為多個模塊,這一點和微服務是一樣的,都是要把系統進行拆分,部署到不同機器上,因為一臺機器可能承受不了這么大的訪問壓力,或者說要支撐這么大的訪問壓力需要采購一臺性能超級好的服務器,其財務成本非常高,有這些預算完全可以采購很多臺普通的服務器了,分布式系統各個模塊通過接口進行數據交互,其實分布式也是一種微服務,因為都是把模塊拆分變為獨立的單元,提供接口來調用,那么它們本質的區別是什么?
它們的本質的區別體現在“目標”上, 何為目標,就是你采用分布式架構或者采用微服務架構,你最終是為了什么,要達到什么目的?
分布式架構的目標是什么? 就是訪問量很大一臺機器承受不了,或者是成本問題,不得不使用多臺機器來完成服務的部署;
而微服務的目標是什么?只是讓各個模塊拆分開來,不會被互相影響,比如模塊的升級或者出現BUG或者是重構等等都不要影響到其他模塊,微服務它是可以在一臺機器上部署;
但是:分布式也是微服務的一種,微服務也屬于分布式;
微服務只是一種項目的架構方式、架構理念,或者說是一種概念,就如同我們的MVC架構一樣, 那么Spring Cloud便是對這種架構方式的技術落地實現;
微服務只是一種項目的架構方式、架構理念,所以任何技術都可以實現這種架構理念,只是微服務架構里面有很多問題需要我們去解決,比如:負載均衡,服務的注冊與發現,服務調用,服務路由,服務熔斷等等一系列問題,如果你自己從0開始實現微服務的架構理念,那頭發都掉光了,所以Spring Cloud 幫我們做了這些事情,Spring Cloud將處理這些問題的的技術全部打包好了,我們只需要開箱即用;
官網:
https://spring.io/projects/spring-cloud
版本:Greenwich SR3
出自官方:
Spring Cloud為開發人員提供了一些工具用來快速構建分布式系統中的一些常見模式和解決一些常見問題(例如配置管理、服務發現、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、領導選舉、分布式會話、群集狀態)。分布式系統的協調導致了很多樣板式的代碼(很多固定套路的代碼),使用Spring Cloud開發人員可以快速建立實現這些模式的服務和應用程序。它們在任何分布式環境中都能很好地運行,包括開發人員自己的筆記本電腦、裸機數據中心和云計算等托管平臺;
Spring Cloud為分布式系統開發的典型應用場景提供良好的開箱即用的功能,比如:
分布式/版本化配置
服務注冊和發現
路由
服務與服務間的調用
負載均衡
斷路器
全局鎖
領導選舉與集群狀態
分布式消息傳遞
Spring Cloud Config
Spring Cloud Netflix
Spring Cloud Bus
Spring Cloud Cloudfoundry
Spring Cloud Open Service Broker
Spring Cloud Cluster
Spring Cloud Consul
Spring Cloud Security
Spring Cloud Sleuth
Spring Cloud Data Flow
Spring Cloud Stream
Spring Cloud Stream App Starters
Spring Cloud Task
Spring Cloud Task App Starters
Spring Cloud Zookeeper
Spring Cloud AWS
Spring Cloud Connectors
Spring Cloud Starters
Spring Cloud CLI
Spring Cloud Contract
Spring Cloud Gateway
Spring Cloud OpenFeign
Spring Cloud Pipelines
Spring Cloud Function
Spring Cloud是由一系列獨立項目組成的,每個獨立的項目具有不同的發布節奏,每次Spring Cloud發布版本時,就會組合這一系列的子項目,Spring Cloud為了避免大家對版本號的誤解,避免與子項目版本號混淆,所以Spring Cloud發布的版本是一個按照字母順序的倫敦地鐵站的名字(“天使”是第一個版本,“布里克斯頓”是第二個),字母順序是從A-Z,目前最新穩定版本Greenwich SR3,當Spring Cloud里面的某些子項目出現關鍵性bug或重大更新,則發布序列將推出名稱以“.SRX”結尾的版本,其中“X”是一個數字,比如:Greenwich SR1、Greenwich SR2、Greenwich SR3;
Spring Cloud是微服務開發的一整套解決方案,采用Spring Cloud開發,每個項目依然是使用Spring Boot;
Spring Cloud 與 Spring Boot的兼容版本
Service Provider: 暴露服務的服務提供方。
Service Consumer:調用遠程服務的服務消費方。
EureKa Server: 服務注冊中心和服務發現中心。
我們知道,Springcloud 構建微服務是基于 SpringBoot 開發的。
1、創建一個 SpringBoot 工程,并且添加 SpringBoot 的相關依賴;
2、創建服務提供者的訪問方法,也就是后續消費者如何訪問提供者;
Spring Cloud 是基于 rest 的訪問,所以我們添加一個 Controller,在該Controller 中提供一個訪問入口:
3、啟動運行該 SpringBoot 程序,訪問該 controller;
服務消費者也是一個 SpringBoot 項目,服務消費者主要用來消費服務提供者提供的服務;
1、創建一個 SpringBoot 工程,并且添加 SpringBoot 的相關依賴;
2、開發一個消費者方法,去消費服務提供者提供的服務,這個消費者方法也是
一個 Controller:
3、啟動該 SpringBoot 程序,測試服務消費者調用服務提供者;
到此,關于“如何理解SpringCloud微服務架構”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。