java ribbon配置

概念:
Ribbon是一种客户端负载平衡器,可让您对HTTP和TCP客户端的行为进行大量控制。Feign已使用Ribbon,因此,如果使用@FeignClient,则本节也适用。Ribbon中的中心概念是指定客户的概念。每个负载均衡器都是组件的一部分,这些组件可以一起工作以按需联系远程服务器,并且该组件具有您作为应用程序开发人员提供的名称(例如,使用@FeignClient批注)。根据需要,Spring Cloud通过使RibbonClientConfiguration为每个命名的客户端创建一个新的集合作为ApplicationContext。其中包含ILoadBalancer,RestClient和ServerListFilter。

java ribbon配置
1引入jar
pom.xml

org.springframework.cloud spring-cloud-starter-netflix-ribbon
2.数据库easy code插件生成各个层

java ribbon配置
3添加application.yml配置
java ribbon配置
4
java ribbon配置
5
java ribbon配置
6.设置接口内容

java ribbon配置

@Service(“carService”)
public class CarServiceImpl extends ServiceImpl<CarDao, Car> implements CarService {
//依赖注入
@Resource
private RestTemplate restTemplate;

/**
 * 根据订单编号查询订单对象
 * @param orderId
 * @return
 */
public R  getOrderById(Integer orderId){
    //注意: 1, http后的服务名称必须是想调用的服务名称
    //      2,服务名称后的路径必须和远程方法的路径
    //      3,请求方式必须和远程资源方式一致
    //      4,  返回值也必须和远程方法返回值一致
    /*restTemplate.postForObject();
    restTemplate.delete();
    restTemplate.put();*/
    return  restTemplate.getForObject("http://MemberServer/order/selectOne?id="+orderId,R.class);
}

/**
 * 重写的根据编号获取Car对象方法
 * @param id
 * @return
 */
@Override
public Car getById(Serializable id) {
    Car car = this.baseMapper.selectById(id);
    //  int orderId = car.getOrderID;
    //this.getOrderById(orderId);
    R resultR = this.getOrderById(1);
    car.setR(resultR);
    return car;
}

7.轮询,随机配置
java ribbon配置
@Configuration
public class RibbonConfiguration {
//实例化bean,交给容器管理
@Bean//相当于过去的
@LoadBalanced //当使用RestTemplate调用远程接口的时候使用负载均衡
public RestTemplate restTemplate(){
return new RestTemplate();
}
//实例化IRule的实现类,指定负载均衡策略
@Bean
public IRule iRule()
{
//随机
//return new RandomRule();
//轮询
return new RoundRobinRule();
}
}

8.客户端controller修改

java ribbon配置
@GetMapping("/selectOne")
public R selectOne(Integer id) {
Order order = this.orderService.getById(id);
order.setCarId(14221);
order.setOrderno(“服务器member_server_a”);
return success(order);
}

10.登陆客户端localhost:http://localhost:14222/swagger-ui/index.html
F服务注册中心:http://localhost:8848/nacos

ribbon:localhost:14231/car/selectOne/1

观察轮询随机即可

上一篇:粘性布局


下一篇:Jumpserver-堡垒机