一个负载均衡器,至少提供以下功能:
要维护各个服务器的IP等信息
根据特定的逻辑选取服务器
为了实现基本的负载均衡功能,Ribbon的负载均衡器有三大子模块:
Rule
Ping
ServerList
Ribbon在SpringCloud中使用时,配置可以通过两种方式,一种是Java配置,另一种是配置文件配置。
通过java配置:
package com.hurricane.learn.springcloud.ribbon; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; @RibbonClient(name="user-service-provider",configuration=MyConfig.class) public class MyConfig { @Bean public MyRule createMyRule() { return new MyRule(); } }
配置文件配置:
#自定义规则的使用 user-service-provider.ribbon.NFLoadBalancerRuleClassName=com.hurricane.learn.springcloud.ribbon.MyRule
服务调用的一个神坑:
测试服务之间的调用,一直调用不成功,提示:
Request URI does not contain a valid hostname: http://user_service_provider/getUser
最后发现,竟然是因为服务实例名中不能有下划线。将实例名改为aaa就可以进行访问。
以上是Spring Cloud应用之ribbon使用的详细内容。更多信息请关注PHP中文网其他相关文章!