怎麼用spring cloud service-id 進行調用接口

 

 

 

這裏最關鍵的就是加上@LoadBalancedapp

 1 @SpringBootApplication
 2 public class ConsumerMovieApplication {
 3   @Bean
 4   @LoadBalanced  -- 若是這行代碼註釋了,則下面的controller則調不通
 5   public RestTemplate restTemplate() {
 6     return new RestTemplate();
 7   }
 8 
 9   public static void main(String[] args) {
10     SpringApplication.run(ConsumerMovieApplication.class, args);
11   }
12 }
@RequestMapping("/movies")
@RestController
public class MovieController {
  @Autowired
  private RestTemplate restTemplate;

  @GetMapping("/users/{id}")
  public User findById(@PathVariable Long id) {
    // 這裏用到了RestTemplate的佔位符能力
    User user = this.restTemplate.getForObject(
      "http://microservice-provider-user/users/{id}", -- 若是上面的@LoadBalanced 註釋了會調不通
      User.class,
      id
    );
    // ...電影微服務的業務...
    return user;
  }
}

 

 

把@LoadBalanced註釋了,則出現的錯誤以下:ide

 

 因此這個註解必需要在RestTemplate這個類中加上。微服務

相關文章
相關標籤/搜索