springCloud的瞭解(一)

更新時間:2019年7月17日
複製代碼

前言

springCloud走到了如今,已經初步在國內有了必定的市場,固然,2018年出了新聞,springCloud的配套技術,Hystrix和Eureka已經中止更新了,理由是說現有的技術已經足夠支持當前的開發需求,因此再也不繼續更新,只進行維護。web

這實在是讓我感受有點傷,感受SpringCloud都沒有學好,太多的組件都不是很瞭解,忽然之間關鍵的好幾個組件都不更新了是什麼鬼。spring

可是,雖然Hystrix和Eureka已經中止更新了,雖然springCloud有被影響到,可是你們徹底能夠轉向到Consul、ZooKeeper、Etcd等開源中間件上去嘛,由於涉及到的是springCloud自己來講,使用的是什麼組件它其實也並不關心,組件的使用權力全權操控在用戶的手裏。後端

所以,雖然springCloud遭受了驚天鉅變,可是咱們仍然不能夠放棄它,由於它是嫡傳的是純正的spring家族的新興表明,血統純正表明的就是能夠無縫融合spring陣營中的全部的開發工具和傳統習慣。設計模式

接下來,讓咱們開始學習springCloud吧。springboot

springcloud的簡介

Spring Cloud 是一套完整的微服務解決方案,基於 Spring Boot框架,準確的說,它不是一個框架,而是一個大的容器,它將市面上較好的微服務框架集成進來,從而簡化了開發者的代碼量。bash

它利用 Spring Boot 的開發便利性簡化了分佈式系統的開發,好比服務發現、服務網關、服務路由、鏈路追蹤等。Spring Cloud 並不重複造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從而減小了各模塊的開發成本。網絡

springcloud的當前狀況

springCloud在最初的時候,在國內的市場佔有率並不高,固然到如今爲止也不是很高,恰巧在springCloud興起的時候,dubbo也中止了更新,因此springCloud有了容身之地,可是在前年dubbo開始恢復了更新,並且在三個月內瘋狂的發佈了四個維護版本,而springCloud緊接着在不久以後,NetFlix的Eureka和Hystrix中止了更新,更加對當前很差的形勢雪上加霜,很多的小廠都投入到了dubbo的懷抱。架構

固然dubbo也是能夠和springCloud一塊兒使用,由於Dubbo關注於服務治理這塊而且之後也會繼續往這個方向去發展。Spring Cloud關注的是微服務治理的生態。由於微服務治理的方方面面都是它所關注的內容,服務治理也只是微服務生態的一部分而已。所以能夠大膽的判定,Dubbo將來會在服務治理方面更爲出色,而 Spring Cloud 在微服務生態上面無人能敵。mvc

固然這只是網絡上一部分人的設想,在實際狀況中是市面上同時使用springCloud和dubbo的狀況仍是少,阿里出身的大量的創業者都選擇直接使用dubbo。負載均衡

springcloud的優勢和缺點

在網絡上看見一篇博文,感受對springCloud的優缺點介紹的很是仔細,我就不作總結了,直接轉載過來。

原文:blog.csdn.net/valada/arti…

主要優勢:

1.集大成者,Spring Cloud 包含了微服務架構的方方面面。
2.約定優於配置,基於註解,沒有配置文件。
3.輕量級組件,Spring Cloud 整合的組件大多比較輕量級,且都是各自領域的佼佼者。
4.開發簡便,Spring Cloud 對各個組件進行了大量的封裝,從而簡化了開發。
5.開發靈活,Spring Cloud 的組件都是解耦的,開發人員能夠靈活按需選擇組件。
複製代碼

主要缺點:

1.項目結構複雜,每個組件或者每個服務都須要建立一個項目。
2.部署門檻高,項目部署須要配合 Docker 等容器技術進行集羣部署,而要想深刻了解 Docker,
  學習成本高。
複製代碼

springcloud和springMVC,springBoot,spring的關係

很多的朋友,在學習springCloud的時候,都在思索,在spring這個你們庭裏面,srpingCloud和springMVC以及springboot的關係。

讓咱們先來總結一下這四者的定義。

什麼是spring:

一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器,Java 開發框架。

什麼是springMVC:

是基於Servlet 的一個MVC框架主要解決WEB開發的問題。

SpringMVC是等同於咱們所說的spring+MVC。MVC是什麼呢,是C(controller控制器)將V(view視圖、用戶客戶端)與M(model模塊,業務)三者分開。

業內常見的mvc模式的開發框架有Struts1,Struts2等。spring做爲專業的開發web項目的開源框架,springMvc爲內部的一個模塊環節,一樣採起mvc設計模式。

什麼是springboot:

在spring你們族中,由於spring發展的愈來愈好,而後到了開發項目的時候,發現須要配置的東西也愈來愈多,甚至有的時候,開發的實際業務所花費的時間尚未配置花費的時間多,這個時候,springboot應運而生。

springboot主要就是把一些以前須要開發人員手動配置的東西直接封裝好了,提供了默認的配置,減小了大量的xml配置文件,並且對第三方的技術進行了很好的封裝和整合,提供了大量第三方接口。

Spring Boot的核心思想就是約定大於配置,這一樣也是springCloud的核心思想。

什麼是springCloud:

Spring Cloud爲分佈式系統快速構建行業統一特徵模式的應用提供了一個行之有效的解決工具箱,諸如配置管理、服務發現、熔斷器、智能路由、微服務代理、控制總線、一次性令牌、全局鎖、領導選舉、分佈式會話以及集羣狀態等,經過各分佈式微服務組件的實現以及協調使用,開發者可以快速構建出運行良好的服務。

springCloud就是在以springboot開發爲基礎的時候,提供的一套成熟的可靠的,簡單易維護的微服務分佈式開發方案。 (拆分業務,微服務整合)

SpringCloud既然是一套分佈式服務治理的框架,那麼它自己不會提供具體功能性的操做,更專一於服務之間的通信、熔斷、監控等。所以就須要不少的組件來支持一套功能,至關於管理多個springBoot框架的單體微服務。

固然,以上內容的目的是爲了讓你們更加了解這四者之間的聯繫,因此並無詳細的介紹這四者。實際狀況固然要比我說的要更加複雜。

springcloud的主要組件和流程

先給你們看一張圖片,圖片來自:@王璐-Louise

主要組件有:

服務發現——Netflix Eureka
客服端負載均衡——Netflix Ribbon
斷路器——Netflix Hystrix
服務網關——Netflix Zuul
分佈式配置——Spring Cloud Config
複製代碼

主要流程:

一、外部或者內部的非 Spring Cloud目都統一經過API網關(Zuul)來訪可內部服務.
二、網關接收到請求後,從註冊中心( Eureka)獲取可用服務
三、由 Ribbon進行均負載後,分發到後端的具體實例
四、徹服務之間經過 Feign進行通訊處理業務
五、 Hystrix負責處理服務超時熔斷
六、 Turbine監控服務間的調用和焠斷相關指標
複製代碼

小結

今天的學習就到此爲止,明天咱們繼續學習springCloud。

相關文章
相關標籤/搜索