xuxueli/xxl-job

Spring Cloud架构下executor获取IP

GHb929534899 opened this issue · 0 comments

场景简介

我想使用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一个

个人技术比较菜

互相学习