国产免费观看青青草原网站_久久精品视频色悠悠_影音先锋激情5566_日本一區二區三區免費高清在線_麻豆精品一区综合av_丰满的大屁股一区二区_男女啪啪免费网站_草莓视频app在线观看下载_午夜寂寞少妇AA片_混乱的生物课月老师后续视频

 
您現(xiàn)在的位置:首頁 ? 知識(shí)庫 ? 軟件開發(fā) 軟件開發(fā)
數(shù)據(jù)分析Spring Cloud在國內(nèi)中小型公司能用起來嗎?
發(fā)布日期:2018-04-17

好問題必須配認(rèn)真的回答,仔細(xì)的看了題主的問題,發(fā)現(xiàn)這個(gè)問題非常具有代表性,可能是廣大網(wǎng)友想使用 Spring Cloud 卻又對(duì) Spring Cloud 不太了解的共同想法,題主對(duì) Spring Cloud 使用的方方面面都進(jìn)行過了思考,包括市場,學(xué)習(xí)、前后端、測試、配置、部署、開發(fā)以及運(yùn)維,下面就是題主原本的問題:

想在公司推廣 Spring Cloud,但我對(duì)這項(xiàng)技術(shù)還缺乏了解,畫了一張腦圖,總結(jié)了種種問題。

微服務(wù)是這樣一個(gè)結(jié)構(gòu)嗎?

前端或二方 - > ng 集群 -> zuul 集群 -> eureka-server 集群 -> service provider 集群

(二方指其他業(yè)務(wù)部門)

想要明白這個(gè)問題,首先需要知道什么是 Spring Boot,什么是 Spring Cloud,以及兩者之間有什么關(guān)系?

什么是 Spring Boot

Spring Boot 簡化了基于 Spring 的應(yīng)用開發(fā),通過少量的代碼就能創(chuàng)建一個(gè)獨(dú)立的、產(chǎn)品級(jí)別的 Spring 應(yīng)用。Spring Boot 為 Spring 平臺(tái)及第三方庫提供開箱即用的設(shè)置,這樣你就可以有條不紊地開始。多數(shù) Spring Boot 應(yīng)用只需要很少的 Spring 配置。Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化新 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。

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

Spring Boo t的核心思想就是約定大于配置,一切自動(dòng)完成。采用 Spring Boot 可以大大的簡化你的開發(fā)模式,所有你想集成的常用框架,它都有對(duì)應(yīng)的組件支持。

什么是 Spring Cloud

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊(cè)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用 Spring Boot 的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。

Spring 并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過 Spring Boot 風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。

微服務(wù)是可以獨(dú)立部署、水平擴(kuò)展、獨(dú)立訪問(或者有獨(dú)立的數(shù)據(jù)庫)的服務(wù)單元,Spring Cloud 就是這些微服務(wù)的大管家,采用了微服務(wù)這種架構(gòu)之后,項(xiàng)目的數(shù)量會(huì)非常多,Spring Cloud 做為大管家就需要提供各種方案來維護(hù)整個(gè)生態(tài)。

Spring Cloud 就是一套分布式服務(wù)治理的框架,既然它是一套服務(wù)治理的框架,那么它本身不會(huì)提供具體功能性的操作,更專注于服務(wù)之間的通訊、熔斷、監(jiān)控等。因此就需要很多的組件來支持一套功能。

Spring Boot 和 Spring Cloud 的關(guān)系

Spring Boot 是 Spring 的一套快速配置腳手架,可以基于 Spring Boot 快速開發(fā)單個(gè)微服務(wù),Spring Cloud 是一個(gè)基于 Spring Boot 實(shí)現(xiàn)的云應(yīng)用開發(fā)工具;Spring Boot 專注于快速、方便集成的單個(gè)微服務(wù)個(gè)體,Spring Cloud 關(guān)注全局的服務(wù)治理框架;Spring Boot 使用了默認(rèn)大于配置的理念,很多集成方案已經(jīng)幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于 Spring Boot 來實(shí)現(xiàn),可以不基于 Spring Boot 嗎?不可以。

Spring Boot 可以離開 Spring Cloud 獨(dú)立使用開發(fā)項(xiàng)目,但是 Spring Cloud 離不開 Spring Boot,屬于依賴的關(guān)系。

● Spring -> Spring Boot > Spring Cloud 這樣的關(guān)系。

回答

首先樓主問的這些問題都挺好的,算是經(jīng)過了自己的一番思考,我恰好經(jīng)歷了你所說的中小公司,且都使用 Spring Cloud 并且已經(jīng)投產(chǎn)上線。第一家公司技術(shù)開發(fā)人員 15 人左右,項(xiàng)目實(shí)例 30 多,第二家公司開發(fā)人員 100 人左右,項(xiàng)目實(shí)例達(dá) 160 多。

實(shí)話說 Spring Boot、Spring Cloud 仍在高速發(fā)展,技術(shù)生態(tài)不斷的完善和擴(kuò)張,不免也會(huì)有一些小的 bug,但對(duì)于中小公司的使用來將,完全可以忽略,基本都可以找到解決方案,接下來回到你的問題。

1、市場

據(jù)我所知有很多知名互聯(lián)網(wǎng)公司都已經(jīng)使用了 Spring Cloud,比如阿里、美團(tuán)但都是小規(guī)模,沒有像我經(jīng)歷的這倆家公司,業(yè)務(wù)線全部擁抱 Spring Cloud;另外 Spring Cloud 并不是一套高深的技術(shù),普通的 Java 程序員經(jīng)過一到倆個(gè)月完全就可以上手,但前期需要一個(gè)比較精通人的來帶隊(duì)。

2、學(xué)習(xí)

有很多種方式,現(xiàn)在 Spring Cloud 越來越火的情況下,各種資源也越來越豐富,查看官方文檔和示例,現(xiàn)在很多優(yōu)秀的博客在寫 Spirng cloud 的相關(guān)教程,我這里收集了一些 Spring Boot 和 Spring Cloud 的相關(guān)資源可以參考,找到博客也就找到人和組織了。

針對(duì)上面的技術(shù)我特意整理了一下,有很多技術(shù)不是靠幾句話能講清楚,所以干脆找朋友錄制了一些視頻,很多問題其實(shí)答案很簡單,但是背后的思考和邏輯不簡單,要做到知其然還要知其所以然。如果想學(xué)習(xí)Java工程化、高性能及分布式、深入淺出。微服務(wù)、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java進(jìn)階群:582505643,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家。

3、前后職責(zé)劃分

其實(shí)這個(gè)問題是每個(gè)系統(tǒng)架構(gòu)都應(yīng)該考慮的問題,Spring Cloud 只是后端服務(wù)治理的一套框架,唯一和前端有關(guān)系的是 thymeleaf,Spring 推薦使用它做模板引擎。一般情況下,前端 app 或者網(wǎng)頁通過 zuul 來調(diào)用后端的服務(wù),如果包含靜態(tài)資源也可以使用 nginx 做一下代理轉(zhuǎn)發(fā)。

4、測試

Spring-boot-starter-test 支持項(xiàng)目中各層方法的測試,也支持 controller 層的各種屬性。所以一般測試的步奏是這樣,首先開發(fā)人員覆蓋自己的所有方法,然后測試微服務(wù)內(nèi)所有對(duì)外接口保證微服務(wù)內(nèi)的正確性,再進(jìn)行微服務(wù)之間集成測試,最后交付測試。

5、配置

session 共享有很多種方式,比如使用 tomcat sesion 共享機(jī)制,但我比較推薦使用 redis 緩存來做 session 共享。完全可以分批引入,我在上一家公司就是分批過渡上線,新舊項(xiàng)目通過 zuul 進(jìn)行交互,分批引入的時(shí)候,最好是新業(yè)務(wù)線先使用 Spring Cloud,老業(yè)務(wù)做過渡,當(dāng)完全掌握之后在全部替換。如果只是請(qǐng)求轉(zhuǎn)發(fā),zuul 的性能不一定比 nginx 低,但是如果涉及到靜態(tài)資源,還是建議在前端使用 nginx 做一下代理。另外 Spring Cloud 有配置中心,可以非常靈活的做所有配置的事情。

6、部署

多環(huán)境不同配置,Spring Boot 最擅長做這個(gè)事情了,使用不同的配置文件來配置不同環(huán)境的參數(shù),在服務(wù)啟動(dòng)的時(shí)候指明某個(gè)配置文件即可,例如:java -jar app.jar --spring.profiles.active=dev 就是啟動(dòng)測試環(huán)境的配置文件;Spring Cloud 沒有提供發(fā)布平臺(tái),因?yàn)?jenkins 已經(jīng)足夠完善了,推薦使用 jenkins 來部署 Spring Boot 項(xiàng)目,會(huì)省非常多的事情;灰度暫時(shí)不支持,可能需要自己來做,如果有多個(gè)實(shí)例,可以一個(gè)一個(gè)來更新;支持混合部署,一臺(tái)機(jī)子部署多個(gè)是常見的事情。

7、開發(fā)

你說的包含 html 接口就是前端頁面吧,Spring Boot 可以支持,但其實(shí)也是 Spring Mvc 在做這個(gè)事情,Spring Cloud 只做服務(wù)治理,其它具體的功能都是集成了各種框架來解決而已;excel 報(bào)表可以,其實(shí)除過 swing 項(xiàng)目外,其它 Java 項(xiàng)目都可以想象;Spring Cloud 和老項(xiàng)目可以混合使用,通過 zuul 來支持。是否支持 callback,可以通過 MQ 來實(shí)現(xiàn),還是強(qiáng)調(diào) Spring Cloud 只是服務(wù)治理。

8、運(yùn)維

Turbine、zipkin 可以用來做熔斷和性能監(jiān)控;動(dòng)態(tài)上下線某個(gè)節(jié)點(diǎn)可以通過 jenkins 來實(shí)現(xiàn);provider 下線后,會(huì)有其它相同的實(shí)例來提供服務(wù),Eureka 會(huì)間隔一段時(shí)間來檢測服務(wù)的可用性;不同節(jié)點(diǎn)配置不同的流量權(quán)值目前還不支持。注冊(cè)中心必須做高可用集群,注冊(cè)中心掛掉之后,服務(wù)實(shí)例會(huì)全部停止。

總結(jié),中小企業(yè)是否能用的起來 Spring Cloud,完全取決于自己公司的環(huán)境,如果是一個(gè)技術(shù)活躍型的團(tuán)隊(duì)就大膽的去嘗試吧,目前 Spring Cloud 是所有微服務(wù)治理中最優(yōu)秀的方案,也是一個(gè)趨勢(shì),未來一兩年可能就會(huì)像 Spring 一樣流行,早接觸早學(xué)習(xí)豈不更好。

希望能解答了你的疑問。

Spring Cloud 架構(gòu)

我們從整體來看一下 Spring Cloud 主要的組件,以及它的訪問流程

1、外部或者內(nèi)部的非 Spring Cloud 項(xiàng)目都統(tǒng)一通過 API 網(wǎng)關(guān)(Zuul)來訪問內(nèi)部服務(wù)

2、網(wǎng)關(guān)接收到請(qǐng)求后,從注冊(cè)中心(Eureka)獲取可用服務(wù)

3、由 Ribbon 進(jìn)行均衡負(fù)載后,分發(fā)到后端的具體實(shí)例

4、微服務(wù)之間通過 Feign 進(jìn)行通信處理業(yè)務(wù)

5、Hystrix 負(fù)責(zé)處理服務(wù)超時(shí)熔斷

6、Turbine 監(jiān)控服務(wù)間的調(diào)用和熔斷相關(guān)指標(biāo)

圖中沒有畫出配置中心,配置中心管理各微服務(wù)不同環(huán)境下的配置文件。

以上就是一個(gè)完整的 Spring Cloud 生態(tài)圖。

  • 1.公司登記注冊(cè)于2003年1月27日,清遠(yuǎn)市桑達(dá)電子網(wǎng)絡(luò)媒體有限公司
    2.公司2006年起成為清遠(yuǎn)市政府定點(diǎn)協(xié)議供貨商,電子采購供貨商
    3.公司2007年被清遠(yuǎn)市相關(guān)政府部門評(píng)為安防行業(yè)狀元
    4.公司2007年起成為長城電腦清遠(yuǎn)如意服務(wù)站(SP368)
    5.公司2007年承建清遠(yuǎn)市橫河路口電子警察工程,開創(chuàng)清遠(yuǎn)電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠(yuǎn)金牌代理(伙伴編號(hào):30030013)
    7.公司組團(tuán)隊(duì)參加南方都市報(bào)組織的創(chuàng)富評(píng)選,獲廣東80強(qiáng)。公司申請(qǐng)多項(xiàng)軟件著作權(quán)、專利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動(dòng)世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動(dòng)電子網(wǎng)絡(luò)媒體有限公司
    10.2021-01-13更名為廣東互動(dòng)電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個(gè)負(fù)責(zé)任的百年企業(yè)! 天行健,君子以自強(qiáng)不息;地勢(shì)坤,君子以厚德載物;
    為用戶創(chuàng)造價(jià)值! 讓軟件驅(qū)動(dòng)世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對(duì)客戶負(fù)責(zé),對(duì)員工負(fù)責(zé),對(duì)企業(yè)命運(yùn)負(fù)責(zé)!幫助支持公司的客戶成功;幫助忠誠于公司的員工成功!
  • 聯(lián)系電話:0763-3391888 3323588 3318977
    服務(wù)熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務(wù)QQ: 602045550
    投資及業(yè)務(wù)投訴QQ: 529623964
    微信:小米哥 微信號(hào):qysed3391888
    騰訊微博:桑達(dá)網(wǎng)絡(luò)-基石與起點(diǎn)
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請(qǐng)用@替換#)
在線客服
  • 系統(tǒng)集成咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 售后服務(wù)
    點(diǎn)擊這里給我發(fā)消息
  • 投資合作
    點(diǎn)擊這里給我發(fā)消息