Skip to content

服务调用 ​

深入理解SpringCloud服务调用的实现,掌握OpenFeign、RestTemplate等调用方式,理解调用拦截、重试机制等核心功能。

📋 服务调用概览 ​

服务调用是微服务间通信的核心,SpringCloud提供了多种调用方式。

🎯 一、OpenFeign实现 ​

1.1 Feign客户端 ​

@FeignClient:

java
@FeignClient(name = "user-service", url = "http://localhost:8080")
public interface UserService {
    @GetMapping("/users/{id}")
    User getUser(@PathVariable Long id);
}

1.2 动态代理 ​

FeignClientFactoryBean:

java
@Override
public Object getObject() throws Exception {
    return getTarget();
}

<T> T getTarget() {
    FeignContext context = applicationContext.getBean(FeignContext.class);
    Feign.Builder builder = feign(context);
    return (T) builder.target(this.target);
}

🎯 二、RestTemplate ​

2.1 RestTemplate使用 ​

RestTemplate调用:

java
@Autowired
private RestTemplate restTemplate;

public User getUser(Long id) {
    return restTemplate.getForObject("http://user-service/users/{id}", 
            User.class, id);
}

2.2 负载均衡 ​

@LoadBalanced:

java
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
    return new RestTemplate();
}

📖 学习资源 ​

视频教程 ​

书籍推荐 ​

  • 《Spring Cloud微服务实战》 - 翟永超

网站资源 ​

✅ 学习检查清单 ​

  • [ ] 已理解OpenFeign实现
  • [ ] 已理解RestTemplate使用
  • [ ] 已理解调用拦截
  • [ ] 已理解重试机制
  • [ ] 已总结核心知识点

上一章节:负载均衡
返回目录:SpringCloud源码深度解析