Ribbon是一个实现了客户端负载均衡的组件,Netflix开源的,其主要功能是提供客户端侧负载均衡Ribbon客户端组件提供一系列完善的配置项,如连接超时,重试等配置。
简单来说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中列出负载均衡后面所有的机器,Ribbon会自动的帮助你基于某种规则(轮询,随机等)去连接这些机器,我们也可以使用自定义Ribbon实现自己的负载均衡算法
增加Ribbon依赖本来需要引入spring-cloud-starter-netflix-ribbon,但是由于spring-cloud-starter-netflix-eureka-client中,已经包含了ribbon的包了,所以实际上我们不需要显示的引入ribbon的包就可以直接使用它负载均衡代码
在spring cloud官方文档中是这样说的,如果要自定义Ribbon配置, 则需要把这个配置类放在@SpringBootApplication扫不到的包中(@ComponentScan),因为如果可以扫到自定义的Ribbon配置类的话,那么会对所有的Riboon都生效配置步骤独立新建包,并创建ribbon配置类,例如:com.tuling.cloud.config. RibbonConfiguration创建一个空类ProviderUserConfiguration配置服务的ribbon负载均衡策略
在订单微服务的application.yml中增加配置
Ribbon配置的优先级:属性配置 > JAVA配置>Netflix Ribbon默认配置
到现在为止,我们看到的Ribbon负载均衡后的后端服务地址,是从EurekaServer中获取的可用微服务列表,那么现在如果我不需要使用Eureka,不从Eureka中获取微服务列表,而是Ribbon自己独立配置可用微服务列表,要如何来做呢?
订单微服务application配置中增加如下内容: