springcloud中的自定義ribbon客戶端負載均衡配置
1、不在啟動類同級的包目錄中新建ribbon配置類@Configuration
public class TestConfiguration {
@Autowired
IClientConfig config;
@Bean
public IRule ribbonRule(IClientConfig config) {
return new RandomRule();
}
}
在啟動類中添加注解@RibbonClient
在啟動類中添加注解@RibbonClient
@SpringBootApplication
@EnableEurekaClient //針對Eureka服務注冊使用
//@EnableDiscoveryClient //可以對其他服務注冊軟件使用
@RibbonClient(name="a-microservice-provider-user",configuration=TestConfiguration.class)
public class ConsumerMovieRibbonApplication {
@Bean
@LoadBalanced//客戶端負載均衡,先把服務提供這所有的節點讀取到ribbon注冊表中,默認輪詢請求服務
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(ConsumerMovieRibbonApplication.class, args);
}
}
3.在controller中添加方法
3.在controller中添加方法
@GetMapping("/movie/{userid}")
public TUser test2(@PathVariable(name="userid") String userId) {
//服務的自動發現,不用配置死的IP和端口,只有在RestTemplate添加了@LoadBalanced接口,才能使用應用名稱訪問
return restTemplate.getForObject("http://a-microservice-provider-user/users/"+userId, TUser.class);
}
4、啟動服務發現服務eureka和服務提供類,調用目標方法,可以成功 調用。
4、啟動服務發現服務eureka和服務提供類,調用目標方法,可以成功 調用。