Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spring Cloud架构下executor获取IP #3464

Closed
GHb929534899 opened this issue May 27, 2024 · 0 comments
Closed

Spring Cloud架构下executor获取IP #3464

GHb929534899 opened this issue May 27, 2024 · 0 comments

Comments

@GHb929534899
Copy link

GHb929534899 commented May 27, 2024

场景简介

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

个人技术比较菜

互相学习

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant