Spring Cloud架构下executor获取IP
GHb929534899 opened this issue · 0 comments
GHb929534899 commented
场景简介
我想使用xxl-job是为了在分布式场景下有更好的定时任务调度效果
实际上我也是在Spring Cloud微服务场景下使用xxl-job的
并且基于docker容器化部署
executor获取IP这方面花了我不少时间
感谢我的朋友给我一些启发
我现在将我的解决方案放在下面
概述
使用 org.springframework.cloud.commons.util 包下的 InetUtils 工具获取IP
可以配合 spring.cloud.inetutils.perferred-networks 配置来指定网段
具体使用代码
在你配置executor的IP时
建议先判断配置文件中是否已经有配executor的IP
如果有配则使用配置的
如果没配使用上述IP工具获取IP
@Autowired
private InetUtils inetUtils;
// 在你需要的地方获取IP
String ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
额外说明
虽然InetUtils类本身源码上没有@component注解
但是我见到构造函数中有一个自动配置类的参数
所以尝试使用依赖注入
结果也的的确确拿到了对象
如果不放心也可以自己new一个
个人技术比较菜
互相学习