SpirngCloud项目实战-----04(Feign调用)
文章目录
前言
本篇博客将代码微服务之间,不同服务相互调用的解决方案Feign调用。通过feign调用我们可以在不同服务之间调取需要的api。来获取数据!
一、如何使用Feign?
1.1 添加依赖
<!--用来注册eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--feign调用用来进行远程-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
1.2 添加启动注解@EnableFeignClients
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class LwBlogConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(LwBlogConsumerApplication.class, args);
}
}
1.3 创建调用客户端
使用Feign调用的原理其实就是在本服务中使用RPC远程调用其他服务的接口所以我们需要创建一个接口来模拟远程的服务接口要一毛一样。
// 这个name填写的是对应服务的服务名,这个服务名就是配置在application.properties中的applicationname。
@FeignClient(name= "lw-blog-admin")
public interface HelloRemote {
// 此处就是对应的方法路径
@RequestMapping(value = "/hello")
public String hello(@RequestParam(value = "name") String name);
}
1.4 本地服务如何使用
直接在本地通过将远程客户端注入的方式进行调用
@RestController
public class UserController {
@Autowired
HelloRemote helloRemote;
@RequestMapping("/hello/{name}")
public String index(@PathVariable("name") String name) {
return helloRemote.hello(name+"这是调用方");
}
}
二 测试
2.1 Eureka状态
此时两个服务都已注册在Eureka中。
调用服务提供方的方法 http://localhost:8081/hello?name=1 测试提供方接口是否正常。
有图可知,提供方正常工作。
现在使用消费者去调用生产者的数据。
总结
本篇简单介绍如何使用feign进行服务之间的调用,本篇博客系列的套路是先将基础的服务都搭建然后再一个个模块进行详细解析。主要就是用户登录,然后用户写文章。两个部分,不打算做很复杂的功能,但是会将常见的软件都搭建去。目前的想法是Spring-cloud+docker+redis+es+mycat+mysql这一套。下篇会带来熔断Hystrix的介绍。