当新建的微服务模块需要提供给内部其他模块使用时,可在kems-api
模块下新建api-xx
模块,同时定义被调用的接口(另做好熔断及降级配置),消费模块引用api-xx
即可。
具体请参考
kems-api-system
模块中的配置及实现。以kems-api-system
为例,使用步骤如下。
1. 依赖集成
<dependency>
<groupId>com.kingengine.kems.api</groupId>
<artifactId>kems-api-system</artifactId>
</dependency>
2. 服务及熔断配置
feign:
circuitbreaker:
enabled: true #在Feign中开启circuitbreaker
client:
config:
system:
name: modules-system #配置服务名
3. 启动类配置
@EnableFeignClients({"com.kingengine.kems.api.system.*"})
不推荐扫描
basePackage
时配置全量包名,扫描指定api
即可。
KEMS
提供的api
模块均会指明限定包名
4. rpc
调用
@Service
public class UserServiceImpl implements IUserService {
@Resource
private RemoteUserService remoteUserService;
@Override
public Result<LoginBody> getUserInfo(String loginName) {
Result<LoginBody> result=remoteUserService.getUserInfo(loginName);
// 其他业务代码
return new Result<>();
}
}