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