spring cloud使用配置文件配置Ribbon十分简单:
1.启动类:
package com.xc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableDiscoveryClient
public class App_ribbonAutoConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(App_ribbonAutoConfig.class, args);
}
}
2.服务类:
package com.xc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class TestController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("/getString")
public String getString(){
String s=restTemplate.getForObject("http://cloud-test2/hello",String.class);
System.out.println(s);
return "hello";
}
}
3.若想自定义负载规则 则在配置文件当中添加(测试了一下 并没有生效,还是采用的轮询算法,等尝试出来再进行修改):
(应用名称).ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
clour-test2.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule