多实例服务回调
碰到一个问题,由于applicaiton服务是多实例,但是前端调接口到后端只会到一台实例上,碰巧deploy回调的时候也会调到一台服务上,如果前端调到A,deploy调到B,页面上永远拿不到信息,碰巧公司取消了MQ,用不了广播模式,只能自己想办法解决了。
使用DiscoveryClient 获取全部的服务实例,然后构建http请求批量调用接口
public void callBack(Long moduleId, Long requestId, String phase, String message) {
List<ServiceInstance> appInstanceList = discoveryClient.getInstances("service-application");
for (ServiceInstance application : appInstanceList) {
log.info("模块:{}, 请求:{} 向实例: {}-{} 调用接口发送信息 ", moduleId, requestId, application.getServiceId(), application.getUri().toString());
restTemplate.postForObject(application.getUri() + String.format("/modules/%s/publish/%s/callback", moduleId, requestId), publishStateModel, Void.class);
}
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Henry's Lib
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果