前言
在這個信息橫縱交錯的大數(shù)據(jù)時代钧萍,以前的單應用架構(gòu)完全支撐不起現(xiàn)在的流量了,于是技術(shù)架構(gòu)不斷演變“弥保現(xiàn)如今火爆的微服務(wù)架構(gòu)指巡,不會點分布式都不敢說自己是一個后端開發(fā)者淑履。你對這新技術(shù)不敏感,對一種技術(shù)了解的不透徹藻雪,還是上來就是代碼一把梭秘噪,那么你將如何升職加薪,工資五年還在原地踏步勉耀,什么中年危機就提前到來了指煎。當然架構(gòu)這東西,并不是任何產(chǎn)品都適用微服務(wù)架構(gòu)瑰排,所有不以業(yè)務(wù)邏輯支撐的系統(tǒng)架構(gòu)贯要,就是耍流氓。接下來我們將簡單介紹一下微服務(wù)架構(gòu)椭住,以及后面我們慢慢熟悉的Spring Cloud中的一下子項目崇渗。
什么是微服務(wù)架構(gòu)
微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計風格,它將一個原本獨立的系統(tǒng)拆分多個小型服務(wù)京郑,每個小型服務(wù)都在各自獨立的進程中運行宅广,服務(wù)之間基于HTTP的RESTful API 進行通信協(xié)作。每一個為服務(wù)都圍繞系統(tǒng)中的某一個或者一系列耦合性較高的業(yè)務(wù)功能進行構(gòu)建些举,每個服務(wù)都維護著自身的數(shù)據(jù)儲存跟狱,業(yè)務(wù),自動化測試方案户魏,以及獨立的部署機制驶臊。由于有輕量級的通信協(xié)作挪挤,所以每個微服務(wù)可以使用不同的語言編寫
Spring Cloud簡介
springCloud是基于SpringBoot的一整套實現(xiàn)微服務(wù)的框架。他提供了微服務(wù)開發(fā)所需的配置管理关翎、服務(wù)發(fā)現(xiàn)扛门、斷路器、智能路由纵寝、微代理论寨、控制總線、全局鎖爽茴、決策競選葬凳、分布式會話和集群狀態(tài)管理等組件。跟spring boot框架一起使用的話室奏,會讓你開發(fā)微服務(wù)架構(gòu)的云服務(wù)非常好的方便火焰。
Spring Cloud子項目
- Spring Cloud Config:配置管理開發(fā)工具包,可以讓你把配置放到遠程服務(wù)器窍奋,目前支持本地存儲荐健、Git以及Subversion酱畅。
- Spring Cloud Bus:事件琳袄、消息總線,用于在集群(例如纺酸,配置變化事件)中傳播狀態(tài)變化窖逗,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署。
- Spring Cloud Netflix:針對多種Netflix組件提供的開發(fā)工具包餐蔬,其中包括Eureka碎紊、Hystrix、Zuul樊诺、Archaius等
- Eureka:服務(wù)治理組件仗考,包括服務(wù)注冊中心,服務(wù)注冊與發(fā)現(xiàn)機制的實現(xiàn)词爬。
- Hystrix:容錯管理工具秃嗜,實現(xiàn)斷路器模式,幫助服務(wù)依賴種出現(xiàn)延遲和為故障提供強大的容錯能力顿膨。
- Ribbon:客戶端負載均衡的服務(wù)調(diào)用插件
- Feign:基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件锅锨。
- Zuul:邊緣服務(wù)工具,是提供動態(tài)路由恋沃,監(jiān)控必搞,彈性,安全等的邊緣服務(wù)囊咏。
- Archaius:配置管理API恕洲,包含一系列配置管理API塔橡,提供動態(tài)類型化屬性、線程安全配置操作霜第、輪詢框架谱邪、回調(diào)機制等功能。
Spring Cloud CloudFoundry:通過Oauth2協(xié)議綁定服務(wù)到CloudFoundry庶诡,CloudFoundry是VMware推出的開源PaaS云平臺惦银。
Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作末誓。
Spring Cloud Data Flow:大數(shù)據(jù)操作工具扯俱,通過命令行方式操作數(shù)據(jù)流。
Spring Cloud Security:安全工具包喇澡,為你的應用程序添加安全控制迅栅,主要是指OAuth2。
Spring Cloud Consul:封裝了Consul操作晴玖,consul是一個服務(wù)發(fā)現(xiàn)與配置工具读存,與Docker容器可以無縫集成。
Spring Cloud Zookeeper:操作Zookeeper的工具包呕屎,用于使用zookeeper方式的服務(wù)注冊和發(fā)現(xiàn)让簿。
Spring Cloud Stream:數(shù)據(jù)流操作開發(fā)包,封裝了與Redis,Rabbit秀睛、Kafka等發(fā)送接收消息尔当。
-
Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件蹂安。
..........
SpringCloud特點
1:約定優(yōu)于配置
2:開箱即用椭迎、快速啟動
3:適用于各種環(huán)境
4:輕量級的組件
5:組件支持豐富,功能齊全