springcloud常用组件

springcloud常用组件有:
1、服务注册和发现组件Eureka
2、熔断组件Hystrix
3、负载均衡组件Ribbon
4、路由网关Zuul
上述的四个组件都是来自于Netflix公司,通常称为Spring Cloud Netflix

Ribbon

Ribbon简介

负载均衡是把任务分摊到多个单元上执行,缓解压力。常见的负载均衡方式有两种:

  • 一种是独立进程单元,通过负载均衡策略,把进程分发到不同的单元上去执行,比如Nginx
  • 另一种是把负载均衡的策略以代码的形式封装到服务消费者的客户端上,这个客户端维护了一个服务提供者的信息列表,有了这个列表,通过一定的负载均衡策略吧请求分发到不同的服务提供者上,达到负载均衡的目的。 典型的就是Ribbon。

Ribbon是有Netflix公司开源的组件,用来做负载均衡的,它把负载均衡的逻辑封装在客户端,运行在客户端的进程当中,可以很好地控制HTTP和TCP客户端的负载均衡行为。

在Springcloud构建的微服务系统中,ribbon有两种使用方式: 一种是和RestTemplate结合,另一种是和Feign结合。

Ribbon有很多子模块,经过Netflix公司实际验证的有三个:

  • ribbon-loadbalancer,是一个复杂均衡的API,可以独立使用也可以和其他模块一起使用
  • ribbon-eureka,可以给负载均衡器提供动态服务注册列表的信息
  • ribbon-core:Ribbon的可信API

Ribbon工作原理

Ribbon的负载均衡主要是通过LoadBalancerClient来实现,而LoadBalancerClient具体交给了ILoadBalancer处理,IloadBalancer通过配置IRule,IPing等,向EurekaClient获取注册列表信息,默认每隔10秒钟向Eureka发送一侧ping,检查是否需要更新服务的注册列表信息,拿到服务的注册列表信息之后,ILoadBalancer根据IRule中国设置的负载均衡策略(比如轮询、随机等),进行负载均衡操作。

Feign

Feign的工作原理

Feign通过处理注解生成Request模板,简化了HTTP API的开发。开发人员可以通过使用注解的方法修改Request API。在发送HTTP Request请求之前,Feign通过注解替换Request模板中的参数,生成真正的Request请求,交给java HTTP客户端去处理。

参考文献

《深入理解Spring Cloud与微服务构建》 方志朋 人民邮电出版社

你可能感兴趣的:(springcloud)