Eureka添加负载均衡 @LoadBalanced//负载均衡 出错

原因:没有添加之前是通过url="http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/user/"+id;

@RestController
@RequestMapping(value = "consumer")

public class UserContrller {

    @Autowired
    private RestTemplate  restTemplate;
    //此对象用于向注册中心获得服务列表
    @Autowired
    private DiscoveryClient discoveryClient;
@RequestMapping("/{id}")
   public User findUserById(@PathVariable(value ="id") Integer  id){

    List<ServiceInstance> instanceList = discoveryClient.getInstances("user-provider");

    ServiceInstance serviceInstance = instanceList.get(0);
    URI uri= serviceInstance.getUri();
    System.out.println("uri="+uri);
    String  url="http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/user/"+id;
  return   restTemplate.getForObject(url,User.class);


}


}

 改成名称访问:

修改user-consumer的com.itheima.controller.UserController的调用方式,不再手动获取ip和端口,而是直接通过服务名称调用,代码如下:
@GetMapping(value = "/{id}")
public User queryById(@PathVariable(value = "id")Integer id){
    /*String url = "http://localhost:18081/user/find/"+id;
    return restTemplate.getForObject(url,User.class);*/
    //获取指定生产者的实例列表

   /* List<ServiceInstance> instances = discoveryClient.getInstances("user-provider");
    //获取第一个实例对象
    ServiceInstance instance = instances.get(0);
    String url = "http://"+instance.getHost()+":"+instance.getPort()+"/user/find/"+id;*/

    String url = "http://user-provider/user/find/"+id;
    return restTemplate.getForObject(url,User.class);
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值