- RestTemplate方式通信
- 使用新创建的RestTemplate方式处理
@Autowired
private LoadBalancerClient loadBalancerClient;使用:
//调用某应用名称/demo接口,返回值是String类型
ServiceInstance serviceInstance = loadBalancerClient.choose("应用名称");String result = new RestTemplate().getForObject(serviceInstance.getUri() +"/demo",String.class);
- 使用RestTemplate注入的对象进行调用
需先加载RestTemplate到spring容器中
@Configuration
public class BeansConfig{@Bean@LoadBalanced //引用此注解可负载均衡public RestTemplate getTestTemplate(){return new RestTemplate();}
}
使用:
@Autowired
private RestTemplate restTemplate;//直接调用
String result = restTemplate.getForObject("http://应用名称/demo",String.class);
- OpenFeign方式通信
注:实现该通信必须先开启feign,使用@EnableFeignClients注解开启,然后就可通过调用Service方法层一样调用
@FeginClient("应用名称")
public interface TestFeign{@GetMapping("demo")String demo();}
使用
@Autowired
private TestFeign testFeign;/*** 使用openFeign进行服务间通信*/
@GetMapping("/testFeign")
public String testFeign(){return testFeign.demo();
}