spring-cloud-从入门到高可用-上

本来没打算现在就去学spring-cloud的,因为觉得这块比较高深,之前简单去搜了下Dubbo和spring-cloud,发现后者里面含的组件太多了,学起来应该会很麻烦,短期内无法胜任,但事实上spring-cloud并不是多么高深的东西,如果你不去研究源码的话,仅仅作为上手和开发的话,那还是比较快的,只要你已经具备spring boot基础即可学习,作为spring全家桶中的重要组成部分,spring-cloud也继承了spring家族中的特色,那就是简单,像spring boot 一样简单好用,总之就是非常爽,非常建议学习.再次感谢技术总监把这次升级拆分任务交给我,让我把原来的spring boot 版的几个项目的业务拆分开升级成spring cloud,要不是总监安排,我还不知道什么时候才会去学spring-cloud这么好用的法宝!

先来看看spring-cloud到底有哪些组件:

参考网址-spring-cloud中文网:https://springcloud.cc/ 

看完上面的图是不是懵逼了,我第一次研究spring-cloud也被上图吓到了,这么多组件,学到什么时候啊...但事实上这种担忧是多余的,spring-cloud组件里常用的其实并不多,因为有些组件其实并不好用,比如spring cloud security,你完全可以用shiro,jwt等代替它,因为它实在是太重量级了,再加上每个模块都比较轻量级,配置和搭建极为简单,所以整套流程学起来会比较快.

关于spring-cloud 用的比较多的组件总结如下:

1.eureka : 中文意为:找到了,是spring-cloud的服务发现中心,所有的微服务都在eureka上注册.

2.feign:中文意为:假装,佯装,用于在微服务之间调用.比如A服务要调用B服务,只需要在A服务中添加feign组件即可调用B服务.

3.zuul:网关,是spring-cloud的路由,里面可以配置一系列的过滤器,所有请求都经过zuul,然后由zuul处理后才能进入其他微服务模块中,一般在zuul中做一些权限校验,限流,日志,拦截等操作,因此一个微服务架构的好坏,很大程度上是由zuul决定的.

扫描二维码关注公众号,回复: 3263443 查看本文章

4.config:顾名思义,是spring-cloud的配置中心,当有很多个微服务时,统一配置就变得很重要了,不然改改配置得多累啊,而且spring-cloud的config功能是非常强大的,它可以从远端git仓库(目前中国只支持码云,国外github等)自动拉取配置,这样一来,当你项目部署后,突然哪天需要改点配置啥的,你会很爽的,只需要改改码云里面的配置就行了,项目都不用重启,更不需要什么打包重新部署那么麻烦,对应的微服务会自动拉取配置的,自动实现热部署,真的是非常爽了.

5.bus:spring-cloud的消息总线,上面提到的自动拉取配置就需要用到这个组件,用来传播事件状态变化.

6.hystrix:中文意为:豪猪,浑身长满了刺,意味着自我保护,的确它的功能也是如此,是用来应对服务降级的,比如A服务在调用B服务时,B服务宕掉了,不能提供服务了,此时A服务如果配置了hystrix就可以实现服务降级,常见的比如在双11时抢某件商品时,本来所有服务正常时是可以下单的,但如果服务比较拥挤时,会提示你:系统太拥挤了,这个时候下单这个服务就被降级为:系统太拥挤了.

7.sleuth:中文意为:侦探 是spring-cloud的服务追踪组件,比如完成某个功能时需要A服务调用B,B服务调用C,C服务调用D. 其中有个过程出现了故障,比如C服务调用D时出故障了,但我们压根就不知道啊,这个时候需要sleuth来登场了.

8.stream:里面封装了很多模板,用来操作rabbitmq,kafka,redis等,总之会让原来的mq,缓存等操作起来更容易.

9.ribbon: spring cloud的负载均衡器,默认采用轮询方式负载均衡,当然也可以配置成其他方式.

常用的组件就这么点,聪明的话基本上一两周就能学完.

各个组件的介绍我就说到这里,下篇我会讲具体的实现,以及高可用,请翻阅spring-cloud-从入门到高可用-中.

猜你喜欢

转载自blog.csdn.net/lovexiaotaozi/article/details/82463784