偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Spring Cloud在國內(nèi)中小型公司能用起來嗎?

開發(fā) 開發(fā)工具
今天吃完飯休息的時候瞎逛知乎,突然看到這個一個問題《Spring Cloud在國內(nèi)中小型公司能用起來嗎?》,吸引了我的注意。仔細的看了題主的問題,發(fā)現(xiàn)這是一個好問題,題主經(jīng)過了一番思考,并且用圖形全面的將自己的疑問表達了出來,作為一個研究并使用Spring Boot和Spring Cloud近兩年的程序員,看的我手癢癢不答不快呀。

[[203191]]

今天吃完飯休息的時候瞎逛知乎,突然看到這個一個問題《Spring Cloud在國內(nèi)中小型公司能用起來嗎?》,吸引了我的注意。仔細的看了題主的問題,發(fā)現(xiàn)這是一個好問題,題主經(jīng)過了一番思考,并且用圖形全面的將自己的疑問表達了出來,作為一個研究并使用Spring Boot和Spring Cloud近兩年的程序員,看的我手癢癢不答不快呀。

好問題

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

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

 

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

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

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

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

什么是Spring Boot

Spring Boot簡化了基于Spring的應用開發(fā),通過少量的代碼就能創(chuàng)建一個獨立的、產(chǎn)品級別的Spring應用。 Spring Boot為Spring平臺及第三方庫提供開箱即用的設(shè)置,這樣你就可以有條不紊地開始。多數(shù)Spring Boot應用只需要很少的Spring配置。

Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。用我的話來理解,就是Spring Boot其實不是什么新的框架,它默認配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring Boot整合了所有的框架(不知道這樣比喻是否合適)。

Spring Boot的核心思想就是約定大于配置,一切自動完成。采用Spring Boot可以大大的簡化你的開發(fā)模式,所有你想集成的常用框架,它都有對應的組件支持。如果你對Spring Boot完全不了解,可以參考我的這篇文章:Springboot(一):入門篇

什么是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。Spring并沒有重復制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務(wù)框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。

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

Spring Cloud就是一套分布式服務(wù)治理的框架,既然它是一套服務(wù)治理的框架,那么它本身不會提供具體功能性的操作,更專注于服務(wù)之間的通訊、熔斷、監(jiān)控等。因此就需要很多的組件來支持一套功能,如果你對Spring Cloud組件不是特別了解的話,可以參考我的這篇文章:springcloud(一):大話Spring Cloud

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

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

Spring Boot可以離開Spring Cloud獨立使用開發(fā)項目,但是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人左右,項目實例 30多,第二家公司開發(fā)人員100人左右,項目實例達160多。

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

1、市場

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

2、學習

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

3、前后職責劃分

其實這個問題是每個系統(tǒng)架構(gòu)都應該考慮的問題,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支持項目中各層方法的測試,也支持controller層的各種屬性。所以一般測試的步奏是這樣,首先開發(fā)人員覆蓋自己的所有方法,然后測試微服務(wù)內(nèi)所有對外接口保證微服務(wù)內(nèi)的正確性,再進行微服務(wù)之間集成測試,***交付測試。

5、配置

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

6、部署

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

7、開發(fā)

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

8、運維

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

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

希望能解答了你的疑問。

Spring Cloud 架構(gòu)

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

 

  • 1、外部或者內(nèi)部的非Spring Cloud項目都統(tǒng)一通過API網(wǎng)關(guān)(Zuul)來訪問內(nèi)部服務(wù).
  • 2、網(wǎng)關(guān)接收到請求后,從注冊中心(Eureka)獲取可用服務(wù)
  • 3、由Ribbon進行均衡負載后,分發(fā)到后端的具體實例
  • 4、微服務(wù)之間通過Feign進行通信處理業(yè)務(wù)
  • 5、Hystrix負責處理服務(wù)超時熔斷
  • 6、Turbine監(jiān)控服務(wù)間的調(diào)用和熔斷相關(guān)指標

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

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

***送一個完整示例的Spirng Cloud開源項目等你去spring-cloud-examples

【本文為51CTO專欄作者“純潔的微笑”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-10-19 09:16:17

DubboSpring Clou架構(gòu)

2017-11-02 09:55:28

月薪程序員五萬

2016-06-28 10:37:52

商務(wù)辦公服務(wù)器

2017-03-06 09:34:19

初創(chuàng)辦公戴爾

2014-09-28 14:28:12

硬盤加密全盤加密

2010-12-14 10:21:53

2009-12-21 16:10:28

2015-11-26 10:11:05

2011-02-24 09:56:26

組網(wǎng)網(wǎng)絡(luò)

2018-11-08 09:10:18

組網(wǎng)光纖網(wǎng)絡(luò)

2021-02-25 14:13:49

程序員IT互聯(lián)網(wǎng)

2010-08-23 12:12:58

2015-06-11 17:10:49

局域網(wǎng)布線技術(shù)

2010-08-24 10:04:45

中小型企業(yè)虛擬化

2009-11-24 09:51:22

路由設(shè)計方案

2009-07-11 14:46:44

ADSL光纖企業(yè)

2018-10-08 05:23:20

2010-01-07 13:50:01

網(wǎng)吧交換機

2020-06-26 08:20:12

物聯(lián)網(wǎng)智慧城市IOT

2010-08-25 17:45:21

點贊
收藏

51CTO技術(shù)棧公眾號