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