默认是轮询
这些算法, 都不需要要我们去写, 直接使用一个Robbin进行操作
IRule是是Ribbon对于负载均衡策略实现的接口
默认实现IRule接口的类:
IRule配置:在启动类添加
@Bean
public IRule Irule(){
return new RandomRule();//随机
}
步骤:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
goodsconfig:
@Configuration
public class goodsConfig {
@Bean
public IRule goods(){
return new RoundRobinRule();
}
}
orderconfig:
@Configuration
public class OrderConfig {
@Bean
public IRule order(){
return new RandomRule();
}
}
删除:
概述:
直接使用RestTemplate存在问题:在请求接口时, 路径仍存在问题,只解决了服务名称,没有解决服务后,功能路径问题,因为有可能是别人开发的, 你不知道后面功能路径是什么
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
@FeignClient(name= "client-goods")
public interface goodsFeignClient {
@RequestMapping("/getGoods.do")
public Object getGoods();
}
@Autowired
goodsFeignClient goodsFeignClient;
@RequestMapping("/getGoods.do")
public ResponseResult getGoods(){
return ResponseResult.success("操作成功",
goodsFeignClient.getGoods());
}