在微服务项目中,如果我们想实现服务间调用,一般会选择Feign。之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能支持微服务间的调用,负载均衡和熔断限流都能实现。今天我们来介绍下Retrofit在Spring Cloud Alibaba下的使用,希望对大家有所帮助!
前置知识
本文主要介绍Retrofit在Spring Cloud Alibaba下的使用,需要用到Nacos和Sentinel,对这些技术不太熟悉的朋友可以先参考下之前的文章。
- Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用
- Spring Cloud Alibaba:Sentinel实现熔断与限流
- 还在用HttpUtil?试试这款优雅的HTTP客户端工具吧,跟SpringBoot绝配!
搭建
在使用之前我们需要先搭建Nacos和Sentinel,再准备一个被调用的服务,使用之前的nacos-user-service即可。
- 首先从官网下载Nacos,这里下载的是nacos-server-1.3.0.zip文件,下载地址:https://github.com/alibaba/nacos/releases
- 解压安装包到指定目录,直接运行bin目录下的startup.cmd,运行成功后访问Nacos,账号密码均为nacos,访问地址:http://localhost:8848/nacos
- 接下来从官网下载Sentinel,这里下载的是sentinel-dashboard-1.6.3.jar文件,下载地址:https://github.com/alibaba/Sentinel/releases
- 下载完成后输入如下命令运行Sentinel控制台;
java -jar sentinel-dashboard-1.6.3.jar
- Sentinel控制台默认运行在8080端口上,登录账号密码均为sentinel,通过如下地址可以进行访问:http://localhost:8080
- 接下来启动nacos-user-service服务,该服务中包含了对User对象的CRUD操作接口,启动成功后它将会在Nacos中注册。
/**
* Created by macro on 2019/8/29.
*/
@RestController
@RequestMapping("/user")
public class UserController {
private Logger LOGGER = LoggerFactory.getLogger(this.getClass());
@Autowired
private UserService userService;
@PostMapping("/create")
public CommonResult create(@RequestBody User user) {
userService.create(u