Ribbon 是一个客户端的负载均衡解决方案实现。它提供了我们很多已经实现好的负载方案,我们可以直接拿来用,或者自定义自己的负载均衡规则。Ribbon客户端在启动的时候会从Eureka Server端获取它需要调用服务的列表,并且做缓存,所以在Ribbon客户端启动以后,即使Eureka服务出现问题或者停掉,只要调用的服务没有问题,还是可以保证客户端的正常调用,这样做主要是为了保证CAP中的Availability。
- Ribbon 配置
这里我们为了演示轮询的负载均衡方案,我们需要启动两个服务的provider,设置不同的端口,下面我们通过 Active profiles 来启动服务,配置如下:
application-7011.yml
spring: application: name: provider-service server: port: 7011 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://eureka01:7001/eureka/,http://eureka02:7002/eureka/,http://eureka03:7003/eureka/
application-7012.yml
spring: application: name: provider-service server: port: 7012 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://eureka01:7001/eureka/,http://eureka