- 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();
}