微服务架构下的组件需求
下面是基于一個請求進(jìn)來之后,所需要用到的組件和功能?
從圖可以看到,如果要實施微服務(wù),我們需要解決很多的問題,比如?
1. 服務(wù)注冊發(fā)現(xiàn)?
2. 遠(yuǎn)程服務(wù)調(diào)用?
3. 負(fù)載均衡?
4. 斷路器?
5. 分布式消息?
6. 配置中心?
7. 鏈路監(jiān)控?
所以,spring cloud提供了一些解決這類問題的工具,比如服務(wù)注冊提供了Eureka/Consoul/zookeeper;遠(yuǎn)程調(diào)用基于RestTemplate針對http協(xié)議調(diào)用的封裝;負(fù)載均衡采用Ribbon、斷路器采用hystrix;分布式消息基于kafka、rabbitMQ;配置中心基于config;鏈路監(jiān)控基于sleuth.?
但是,從這些組件中,我們發(fā)現(xiàn)了一些問題,這些組件并不是spring提供的啊,比如eureka、ribbon、hystrix是netflix開源的。而kafka、zookeeper是一些獨(dú)立的組件,和spring似乎沒有關(guān)系。沒錯,這就是spring團(tuán)隊的強(qiáng)大之處,他們很少重復(fù)早輪子,而是他們利用別人造好的輪子來進(jìn)行封裝使得用戶在使用的時候更加方便。?
舉個簡單例子,比如最早spring只提供了IOC和AOP的核心功能,而像ORM框架、緩存、MVC框架,spring只是提供了一種兼容以及支持,所以當(dāng)時大家說spring是萬能膠,可以把各種各樣的框架整合進(jìn)來。?
當(dāng)然,spring也會對一些市面上做得不好的技術(shù)進(jìn)行替代,比如struts2.,我記得當(dāng)時公司使struts2經(jīng)常出現(xiàn)各種漏洞,所以spring mvc才被創(chuàng)造出來并且很快代替了struts。成為現(xiàn)在的主流框架。?
所以,對于spring cloud來說也是如此,spring cloud并不是一個框架,因為Spring Cloud的核心并沒有實現(xiàn)服務(wù)注冊、熔斷、配置中心等功能,它提供了一個標(biāo)準(zhǔn)規(guī)范。而Spring Cloud Netflix才是spring Cloud規(guī)范的一種實現(xiàn)。
?
總結(jié)
以上是生活随笔為你收集整理的微服务架构下的组件需求的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring-Cloud中的统一配置中心
- 下一篇: Spring Cloud生态的构建