前言
在這個(gè)信息橫縱交錯(cuò)的大數(shù)據(jù)時(shí)代,以前的單應(yīng)用架構(gòu)完全支撐不起現(xiàn)在的流量了,于是技術(shù)架構(gòu)不斷演變?,F(xiàn)如今火爆的微服務(wù)架構(gòu),不會(huì)點(diǎn)分布式都不敢說(shuō)自己是一個(gè)后端開(kāi)發(fā)者。你對(duì)這新技術(shù)不敏感,對(duì)一種技術(shù)了解的不透徹,還是上來(lái)就是代碼一把梭,那么你將如何升職加薪,工資五年還在原地踏步,什么中年危機(jī)就提前到來(lái)了。當(dāng)然架構(gòu)這東西,并不是任何產(chǎn)品都適用微服務(wù)架構(gòu),所有不以業(yè)務(wù)邏輯支撐的系統(tǒng)架構(gòu),就是耍流氓。接下來(lái)我們將簡(jiǎn)單介紹一下微服務(wù)架構(gòu),以及后面我們慢慢熟悉的Spring Cloud中的一下子項(xiàng)目。
什么是微服務(wù)架構(gòu)
微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計(jì)風(fēng)格,它將一個(gè)原本獨(dú)立的系統(tǒng)拆分多個(gè)小型服務(wù),每個(gè)小型服務(wù)都在各自獨(dú)立的進(jìn)程中運(yùn)行,服務(wù)之間基于HTTP的RESTful API 進(jìn)行通信協(xié)作。每一個(gè)為服務(wù)都圍繞系統(tǒng)中的某一個(gè)或者一系列耦合性較高的業(yè)務(wù)功能進(jìn)行構(gòu)建,每個(gè)服務(wù)都維護(hù)著自身的數(shù)據(jù)儲(chǔ)存,業(yè)務(wù),自動(dòng)化測(cè)試方案,以及獨(dú)立的部署機(jī)制。由于有輕量級(jí)的通信協(xié)作,所以每個(gè)微服務(wù)可以使用不同的語(yǔ)言編寫(xiě)
Spring Cloud簡(jiǎn)介
springCloud是基于SpringBoot的一整套實(shí)現(xiàn)微服務(wù)的框架。他提供了微服務(wù)開(kāi)發(fā)所需的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競(jìng)選、分布式會(huì)話和集群狀態(tài)管理等組件。跟spring boot框架一起使用的話,會(huì)讓你開(kāi)發(fā)微服務(wù)架構(gòu)的云服務(wù)非常好的方便。
Spring Cloud子項(xiàng)目
- Spring Cloud Config:配置管理開(kāi)發(fā)工具包,可以讓你把配置放到遠(yuǎn)程服務(wù)器,目前支持本地存儲(chǔ)、Git以及Subversion。
- Spring Cloud Bus:事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署。
- Spring Cloud Netflix:針對(duì)多種Netflix組件提供的開(kāi)發(fā)工具包,其中包括Eureka、Hystrix、Zuul、Archaius等
- Eureka:服務(wù)治理組件,包括服務(wù)注冊(cè)中心,服務(wù)注冊(cè)與發(fā)現(xiàn)機(jī)制的實(shí)現(xiàn)。
- Hystrix:容錯(cuò)管理工具,實(shí)現(xiàn)斷路器模式,幫助服務(wù)依賴種出現(xiàn)延遲和為故障提供強(qiáng)大的容錯(cuò)能力。
- Ribbon:客戶端負(fù)載均衡的服務(wù)調(diào)用插件
- Feign:基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件。
- Zuul:邊緣服務(wù)工具,是提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。
- Archaius:配置管理API,包含一系列配置管理API,提供動(dòng)態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調(diào)機(jī)制等功能。
Spring Cloud CloudFoundry:通過(guò)Oauth2協(xié)議綁定服務(wù)到CloudFoundry,CloudFoundry是VMware推出的開(kāi)源PaaS云平臺(tái)。
Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。
Spring Cloud Data Flow:大數(shù)據(jù)操作工具,通過(guò)命令行方式操作數(shù)據(jù)流。
Spring Cloud Security:安全工具包,為你的應(yīng)用程序添加安全控制,主要是指OAuth2。
Spring Cloud Consul:封裝了Consul操作,consul是一個(gè)服務(wù)發(fā)現(xiàn)與配置工具,與Docker容器可以無(wú)縫集成。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務(wù)注冊(cè)和發(fā)現(xiàn)。
Spring Cloud Stream:數(shù)據(jù)流操作開(kāi)發(fā)包,封裝了與Redis,Rabbit、Kafka等發(fā)送接收消息。
-
Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。
..........
SpringCloud特點(diǎn)
1:約定優(yōu)于配置
2:開(kāi)箱即用、快速啟動(dòng)
3:適用于各種環(huán)境
4:輕量級(jí)的組件
5:組件支持豐富,功能齊全