2020-12-28 14:25:56
浏览数 (1)
- 通过restTemplate 直接调用
RestTemplate restTemplate = new RestTemplate();
String s = restTemplate.getForObject(“http://localhost:9098/product/find?id=” id, String.class);
但是这种方法是写固定的IP地址,不能动态使用
- 通过restTmplate ribbon 负载均衡
DiscoveryClient 通过拉去到本地url自己实现负载均衡
LoadBalanceClient 默认是通过轮询的方式实现负载均衡
代码语言:javascript
复制 //1.通过restTemplate 直接调用
RestTemplate restTemplate = new RestTemplate();
String s = restTemplate.getForObject("http://localhost:9098/product/find?id=" id, String.class);
//2.通过restTmplate ribbon 负载均衡 DiscoveryClient 通过拉去到本地url自己实现负载均衡 LoadBalanceClient 默认是通过轮询的方式实现负载均衡 注解的形式
// List<ServiceInstance> serviceInstances = discoveryClient.getInstances("products");
// for (ServiceInstance instance : serviceInstances) {
// System.out.println("地址" instance.getHost() instance.getPort());
// //做相应的处理
// }
//使用loadbalance自动实现负载均衡
ServiceInstance serviceInstance = loadBalancerClient.choose("products");
String s1 = restTemplate.getForObject(serviceInstance.getUri() "/product/find?id=" id, String.class);
map.put("msg",s1);
return map;