簡述SpringCloud是什麼
很多同學都瞭解了Spring ,瞭解了 Spring Boot, 但對於 Spring Cloud 是什麼還是比較懵逼的。
本文帶你簡單的瞭解下,什麼是Spring Cloud。
Spring Cloud 是什麼
從字面理解,Spring Cloud 就是致力於分散式系統、雲服務的框架。
Spring Cloud 是整個 Spring 家族中新的成員,是最近雲服務火爆的必然產物。
Spring Cloud 為開發人員提供了快速構建分散式系統中一些常見模式的工具,例如:
- 配置管理
- 服務註冊與發現
- 斷路器
- 智慧路由
- 服務間呼叫
- 負載均衡
- 微代理
- 控制匯流排
- 一次性令牌
- 全域性鎖
- 領導選舉
- 分散式會話
- 叢集狀態
- 分散式訊息
- ……
使用 Spring Cloud 開發人員可以開箱即用的實現這些模式的服務和應用程式。這些服務可以任何環境下執行,包括分散式環境,也包括開發人員自己的膝上型電腦以及各種託管平臺。
Spring Cloud 與 Spring Boot
Spring Cloud 基於 Spring Boot 來進行構建服務。這樣,開發Spring Cloud 元件時,就能依託 Spring Boot 來實現快速開發。
有關 Spring Boot 內容,可見筆者的視訊課程《基於Spring Boot的部落格系統實戰》(https://waylau.com/spring-boot-blog-video-release/)。
Spring Cloud 與微服務
Spring Cloud 是構建分散式系統的利器,而微服務是當下最火熱的分散式系統的型別之一,所以,Spring Cloud 天然是支援微服務的構建的。
在早些年,國內網際網路公司盛行採用 Dubbo 來架構微服務。如今,有了更好的選擇,那就是 Spring Cloud。有資料顯示,Spring Cloud不管是在國內,還是國外,使用者數都呈現出爆發式增長。而且,Dubbo 主要只是為了解決服務通訊、服務註冊等問題,而 Spring Cloud 卻是提供微服務架構的完整的解決方案。
那麼什麼是微服務?
所謂微服務,就是:
微服務架構風格就像是把小的服務開發成單一應用的形式, 執行在其自己的程式中,並採用輕量級的機制進行通訊(一般是 HTTP 資源 API)。這些服務都是圍繞業務能力來構建,通過全自動部署工具來實現獨立部署。這些服務,其可以使用不同的程式語言和不同的資料儲存技術,並保持最小化集中管理。
更多有關微服務的理論,可見筆者的部落格:https://waylau.com/ahout-microservices/ 。
Spring Cloud 如何實現微服務
說了那麼多理論,那麼微服務架構如何真實的落地呢?課程
《基於Spring Cloud的微服務實戰》(https://waylau.com/spring-cloud-video-release/)給出了真實的答案。
在《基於Spring Cloud的微服務實戰》課程中,作者基於Spring Boot + Spring Cloud 技術棧來實現了一個完整的天氣預報系統。在課程中,先從 Spring Boot 入手,從0到1 快速搭建了具備高併發能力、介面友好的天氣預報系統。而後剖析單塊架構的利弊,從而引入微服務架構的概念,並實從1到0實現微服務的拆分。最後引入Spring Cloud 技術來實現對這些微服務的治理,重點講解了服務註冊與發現、服務互動、服務消費、負載均衡、API閘道器、配置中心、服務熔斷、自動擴充套件等方面的話題。
通過學習該課程,學員不但可以學會 Spring Boot 及 Spring Cloud 最新的周邊技術棧(本課程基於最新的 Spring Boot 2.0.0.M4 以及 Spring Cloud Finchley.M2),掌握如何運用上述技術進行整合,搭建框架的能力,熟悉單體架構及微服務架構的特點,並最終實現掌握構建微服務架構的實戰能力。
搭建 Spring Cloud 微服務系統需要哪些技術
本課程所涉及的相關的技術有 :
- XML解析:JABX
- JSON序列化:Jackson
- 快取:Redis
- 定時器:Quartz Scheduler
- Java模版技術Thymeleaf
- 前端樣式:Bootstrap
- API閘道器:Zuul
- 服務註冊與發現:Eureka Server、Eureka Client
- 服務互動:RestTemplate、Apache HttpClient
- 服務消費:Ribbon、OpenFeign
- 負載均衡:Ribbon
- 配置中心:Config Server、Config Client
- 服務熔斷:Hystrix
- 專案構建:Gradle
通過本課程的學習,能夠掌握架構微服務系統的能力!
參考資料
要學習 Spring Cloud 微服務,除了上面的課程之前,老衛還撰寫了多門微服務相關的開源書籍,注意,都是免費的書籍哦!!!
- 簡述 Microservices(微服務):https://waylau.com/ahout-microservices/
- Spring Boot 教程:https://github.com/waylau/spring-boot-tutorial
- Spring Cloud 教程:https://github.com/waylau/spring-cloud-tutorial
- Gradle 3 使用者指南:https://github.com/waylau/gradle-3-user-guide
- Spring Security 教程:https://github.com/waylau/spring-security-tutorial
- Thymeleaf 教程:https://github.com/waylau/thymeleaf-tutorial
小夥伴們,快點學習起來!!!
相關文章
- 簡述什麼是Promise及其作用,本質Promise
- 簡述為什麼通訊原理中正數的相頻是0
- 簡單理解什麼是MapReduce!
- win10 講述人是什麼_win10如何設定講述人Win10
- 簡述資料分析師需要學什麼內容
- 從巨集觀角度講述什麼是加密演算法加密演算法
- 災備是什麼意思?怎麼簡單理解?
- 什麼是JPA?Java Persistence API簡介JavaAPI
- 是什麼JSON,簡單介紹JSON
- 你都用過SpringCloud的哪些元件,它們的原理是什麼?SpringGCCloud元件
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- 用生活案例講述:erp系統是什麼?有哪些作用?
- IPIDEA講述代理IP以及代理IP池的概念是什麼Idea
- 1、Swing簡介:Swing是什麼?
- 簡單認識什麼是UI設計UI
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?
- NLA是什麼?NLA的原理是什麼?
- ###什麼是Linux核心###什麼是MMULinux
- 【簡單演算法】什麼是複雜度?演算法複雜度
- 簡單講講小程式外掛是什麼
- javascript什麼是事件委託簡單介紹JavaScript事件
- XML簡明教程(1)什麼是XML元素(轉)XML
- XML簡明教程(6)什麼是XML Schema(轉)XML
- CNN 簡述CNN
- 簡述HTTPHTTP
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 什麼是塊元素?什麼是行內元素?
- 什麼是API介面,具體是什麼意思?API
- 什麼是框架?為什麼說 Angular 是框架?框架Angular