Feign接口开发
微服务间的相互调用需要开发Feign接口。
在sofast框架中,微服务间的rpc使用Feign来实现。
SDK
Feign接口需要提供给其他工程进行调用,因此Feign接口需要对外提供包括url、入参、返回体等具体信息供其他服务直接使用,为避免重复定义,sofast规定必须开发sdk工程,其规范如下:
需要创建对应微服务的sdk
sdk中定义好接口、url常量、entity、feign的熔断处理等
调用方和被调用方同时依赖该sdk
Good:
Feign接口实现
sdk开发好后,微服务需要依赖该sdk,并实现接口逻辑:
Good:
依赖sdk
<dependency>
<groupId>com.sofast.cloud</groupId>
<artifactId>so-fast-log-sdk</artifactId>
</dependency>
实现接口逻辑
@Slf4j
@RestController
@Api(tags = "操作日志远程调用")
public class OperatorLogFeignProvider implements IOperatorLogFeign {
@Autowired
IOperatorLogService iOperatorLogService;
@ApiOperation(value = "操作日志", notes = "操作日志保存")
@PostMapping(LogFeignConstants.FEIGN_OPERATOR_LOG)
@Override
public R<Boolean> save(@RequestBody OperatorLog operatorLog) {
return R.data(iOperatorLogService.save(operatorLog));
}
}