springcloud是用于治理springboot的组件框架,springcloud只能用于springboot里面;下面来简单说说springcloud的五大组件: 

1、Eureka:分布式服务注册中心,不用多说,使用分布式服务的时候,基本都需要注册中心对服务注册,这样调用的时候才知道什么请求调用哪个主机的服务,有的服务侧重给某项业务提供,这样就可以配置,防止调到其他主机上占用资源;

2、Feign:项目内部的远程服务调用,比如这个子项目调另一个子项目的服务,父项目是同一个,如果按平时方法调,你就要使用httpClient的api建立连接,然后调用,而使用Feign只需要加上@Feign注解,就可以直接通过地址调用了; 

3、Ribbon:用于负载均衡,与Eureka和Feign协作,使服务调用均匀的分布在各个服务主机上,如果没有这个,可能出现3个服务主机同时提供服务,一个崩溃,另两个闲的蛋疼的情况;

4、Histrix:降级熔断限流,防止服务雪崩,比如一个主机的某个服务异常了,导致其他调用方的主机服务一直等待,这样一直继续影响上层的调用方,直到整个所有服务卡死,如果使用了Histrix,一个子服务挂了,立马降级该服务,并反回一个提示,让其他的服务继续运转,并把调用失败的记录记入日志,方便过后补回来;

5、Zull:路由,这个好理解,很多地方都用到路由,如果只有一个服务器,请求地址域名就只有一个,但如果有100个服务器提供服务,难道给100个域名?那岂不是乱套了,这时候路由就可以自定义请求路径和域名了,可以规定成一个也可以规定成多个,只要有区别就好,真正的请求地址以路由规定的地址做区分,再通过分布式注册中心便可以精确的调到某台服务器的某个服务了;

以上只说明了5大组件的具体作用,其实其他框架里也还有许多类似的组件框架,学这个主要是要知道,有分布式注册中心组件一说、有负载均衡组件一说、有远程调用组件一说、有熔断组件一说、有路由组件一说,这些都是为了处理对应的问题,也许以后遇到的可能是这个组件那个组件,但是处理的问题都是一致的;其实把这些用途搞清楚足够开发使用的,但如果想了解的更彻底,你还可以去搜索资料看看5大组件的实现原理~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐