Spring Cloud应用(二)---ribbon使用

一个负载均衡器,至少提供以下功能:

  • 要维护各个服务器的IP等信息
  • 根据特定的逻辑选取服务器

为了实现基本的负载均衡功能,Ribbon的负载均衡器有三大子模块:

  • Rule
  • Ping
  • ServerList

Ribbon的GitHub上的托管网址是:

        https://github.com/Netflix/ribbon

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就可以进行访问。

参考:

  • 杨恩雄的视频教程

猜你喜欢

转载自blog.csdn.net/hurricane_li/article/details/79990237