springcloud组件原理和作用是什么?springcloud组件原理和作用详解

现在微服务架构很流行,在众多框架中,Spring Cloud就是知名分布式微服务架构,它使我们能在 Spring Boot 的基础上轻松地实现微服务系统的构建。那springcloud组件原理和作用是什么?下面来我们就来给大家讲解一下。

springcloud组件原理和作用.jpg

1、Eureka: 服务注册与发现

注册: 每个服务都向Eureka登记自己提供服务的元数据,包括服务的ip地址,端口号,版本号,通信协议等。eureka将各个服务维护在了一个服务清单中(双层Map,第一层key是服务名,第二层key是实例名,value是服务地址加端口)。同时对服务维持心跳,剔除不可用的服务,eureka集群个节点相注册每个实例中都有一样的服务清单。

发现: eureka注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后实现服务的请求访问。

2、Ribbon

服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台(被调用方的服务地址有多个),Ribbon也是通过发起http请求,来进行的调用,只不过是通过调用服务名的地址来实现的。虽然说Ribbon不用去具体请求服务实例的ip地址或域名了,但是每调用一个接口都还要手动去发起http请求

3、Feign

基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求,简化服务间的调用,在Ribbon的基础上进行了进一步的封装。单独抽出了一个组件,就是Spring Cloud Feign。

在引入Spring Cloud Feign后,我们只需要创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。

4、Hystrix(熔断器)

发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,通过统计接口超时次数返回默认值,实现服务熔断和降级

5、Zuul

如果前端,移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务,通过与Eureka进行整合,将自身注册为Eureka下的应用,从Eureka下获取所有服务的实例,来进行服务的路由。Zuul还提供了一套过滤器机制,开发者可以自己指定哪些规则的请求需要执行校验逻辑,只有通过校验逻辑的请求才会被路由到具体服务实例上,负责返回错误提示。

Spring Cloud组件是其框架重要组成部分,我们只有将这些组件的使用过程以及原理弄清楚,才能更好的使用Spring Cloud哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

Java代码怎么打包?Java代码打包过程

java培训机构哪些好?java培训机构怎么选?

java线程池工作原理是什么?java如何实现一个线程池?