1.添加JavaBean配置

项目中添加如下JavaBean配置就可以使用RestTemplate负载均衡调用了

@LoadBalanced 此注解开启负载均衡,Ribbon默认使用的是轮询算法

  1. @Configuration
  2. public class ApplicationContextConfig {
  3. @Bean
  4. @LoadBalanced
  5. public RestTemplate getRestTemplate(){
  6. return new RestTemplate();
  7. }
  8. }

2.Api示例


restTemplate.getForEntity方法:返回对象为ResponseEntity对象,包含了响应中的一些重要信息,比如响应头,响应状态码,响应体等。

restTemplate.getForObject方法:返回对象为响应体中数据转化成的对象,基本上可以理解为JSON

  1. @GetMapping("/consumer/payment/getForEntity/{id}")
  2. public CommonResult<Payment> getForEntity(@PathVariable("id") Long id) {
  3. ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);
  4. if (entity.getStatusCode().is2xxSuccessful()) {
  5. log.info(entity.getStatusCode() + "\t" + entity.getHeaders());
  6. return entity.getBody();
  7. } else {
  8. return new CommonResult<>(444, "操作失败");
  9. }
  10. }
  11. @GetMapping("/consumer/payment/create")
  12. public CommonResult<Payment> create(Payment payment) {
  13. CommonResult commonResult = restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);
  14. return commonResult
  15. }