版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/xmt1139057136/article/details/82693644
一:什麼是微服務(Microservice)
微服務英文名稱Microservice,Microservice架構模式就是将整個Web應用組織為一系列小的Web服務。這些小的Web服務可以獨立地編譯及部署,并通過各自暴露的API接口互相通訊。它們彼此互相協作,作為一個整體為使用者提供功能,卻可以獨立地進行擴。
微服務架構需要的功能或使用場景
1:我們把整個系統根據業務拆分成幾個子系統。
2:每個子系統可以部署多個應用,多個應用之間使用負載均衡。
3:需要一個服務注冊中心,所有的服務都在注冊中心注冊,負載均衡也是通過在注冊中心注冊的服務來使用一定政策來實作。
4:所有的用戶端都通過同一個網關位址通路背景的服務,通過路由配置,網關來判斷一個URL請求由哪個服務處理。請求轉發到服務上的時候也使用負載均衡。
5:服務之間有時候也需要互相通路。例如有一個使用者子產品,其他服務在處理一些業務的時候,要擷取使用者服務的使用者資料。
6:需要一個斷路器,及時處理服務調用時的逾時和錯誤,防止由于其中一個服務的問題而導緻整體系統的癱瘓。
7:還需要一個監控功能,監控每個服務調用花費的時間等。
目前主流的微服務架構:Dubbo、 SpringCloud、thrift、Hessian等,目前國内的中小企業用的大多數都是Dubbo,SpringCloud估計很少,也許有些開發同學都沒聽說過。
二:SpringCloud項目簡介
springCloud是基于SpringBoot的一整套實作微服務的架構。他提供了微服務開發所需的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和叢集狀态管理等元件。最重要的是,
跟spring boot架構一起使用的話,會讓你開發微服務架構的雲服務非常好的友善。
SpringBoot旨在簡化建立産品級的 Spring 應用和服務,簡化了配置檔案,使用嵌入式web伺服器,含有諸多開箱即用微服務功能
相關元件架構圖
spring cloud子項目包括:
Spring Cloud Config:配置管理開發工具包,可以讓你把配置放到遠端伺服器,目前支援本地存儲、Git以及Subversion。
Spring Cloud Bus:事件、消息總線,用于在叢集(例如,配置變化事件)中傳播狀态變化,可與Spring Cloud Config聯合實作熱部署。
Spring Cloud Netflix:針對多種Netflix元件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
Netflix Eureka:雲端負載均衡,一個基于 REST 的服務,用于定位服務,以實作雲端的負載均衡和中間層伺服器的故障轉移。
Netflix Hystrix:容錯管理工具,旨在通過控制服務和第三方庫的節點,進而對延遲和故障提供更強大的容錯能力。
Netflix Zuul:邊緣服務工具,是提供動态路由,監控,彈性,安全等的邊緣服務。
Netflix Archaius:配置管理API,包含一系列配置管理API,提供動态類型化屬性、線程安全配置操作、輪詢架構、回調機制等功能。
Spring Cloud for Cloud Foundry:通過Oauth2協定綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平台。
Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。
Spring Cloud Data Flow:大資料操作工具,通過指令行方式操作資料流。
Spring Cloud Security:安全工具包,為你的應用程式添加安全控制,主要是指OAuth2。
Spring Cloud Consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫內建。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務注冊和發現。
Spring Cloud Stream:資料流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。
Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以指令行方式快速建立雲元件。
SpringCloud特點
1:約定優于配置
2:開箱即用、快速啟動
3:适用于各種環境
4:輕量級的元件
5:元件支援豐富,功能齊全
三: SpringBoot了解
Spring Boot讓我們的Spring應用變的更輕量化。比如:你可以僅僅依靠一個Java類來運作一個Spring引用。你也可以打包你的應用為jar并通過使用java -jar來運作你的Spring Web應用。
由于SpringCloud依賴SpringBoot,是以在學習SpringCloud架構之前需要了解下SpringBoot。
SpringBoot的主要優點:
1:為所有Spring開發者更快的入門
2:開箱即用,提供各種預設配置來簡化項目配置
3:内嵌式容器簡化Web項目
4:沒有備援代碼生成和XML配置的要求
通過一個helloWorld了解下 位址:
http://start.spring.io/本文主要介紹了相關概念的東西實際操作和應用在後面的文中慢慢介紹
相關資料:中文網:
https://springcloud.cc/英文官網:
https://spring.io/projects感謝您的關注!可加QQ1群:135430763,QQ2群:454796847,QQ3群:187424846。QQ群進群密碼:xttblog,想加微信群的朋友,可以微信搜尋:xmtxtt,備注:“xttblog”,添加助理微信拉你進群。備注錯誤不會同意好友申請。再次感謝您的關注!後續有精彩内容會第一時間發給您!原創文章投稿請發送至[email protected]郵箱。商務合作可添加助理微信進行溝通!