//*
@ author张志祥
@date 2019/12/07
*/
@Component
公共类工作任务{
@Autowired
私有ijob服务作业服务;
保密服务名称=“提供程序”;
//*
每5秒更新一次*
(@ scheduled (固定延迟=5000 ) ) ) ) ) ) ) ) ) ) ) )。
公共语音下载() {
if (IP v4 util.IP compare (this.job service.serviceurl ) (服务名称) ) )
system.out.println (服务名称“服务名称,地址:”IPV4Util.getIpAddress (),任务正在运行);
}
}
}
调度任务显示this.jobService.serviceUrl方法。 此方法的作用是获取SpringCloud群集中的服务信息。 IPV4Util.ipCompare角色将当前服务IP与群集的所有IP进行比较,如果当前服务IP是群集服务IP的最小值,则返回true,反之则返回true
接下来再看一次吧。 要获取SpringCloud集群信息:
//*
@ author张志祥
@date 2019/12/07
*/
@Service
publicclassjobserviceimplimplementsijobservice {
@Autowired
隐私保护客户端;
@Override
publiclistserviceurl (字符串服务名称)。
listserviceinstancelist=discovery client.getinstance s (服务名称;
List urlList=new ArrayList (;
if (collection utils.is not empty (service instancelist ) ) {
service instancelist.foreach (si-{
urllist.add(si.Geturi ) );
);
}
返回列表;
}
}
其实主要是使用发现客户端类中的方法,我们可以很容易地获取集群信息。
最后,让我们来看看IPV4Util工具是如何进行比较的。
//*
@ author张志祥
@date 2019/12/07
*/
公共类IP v4 util {
//*
@ param IP地址
@return
*/
publicstaticlongiptolong (字符串IP地址) {
长结果=0;
string [ ] IP地址inarray=IP地址. split ((. ' );
for(intI=3; i=0; I) {
longip=long.parse long (IP地址inarray [3- I ];
//left shifting 24、16、8、0 andbitwiseor
//1. 192 24
//1. 168 16
//1. 1 8
//1. 2 0
result|=IP(I*8;
}
返回结果;
}
//*
@param ip
@return
*/
publicstaticstringlongtOIP{
stringbuilder result=new stringbuilder (15;
for(intI=0; i 4; I ) {
result.insert(0,long.tostring ) IP0xff );
if(I3 ) {
result.insert(0,‘.’;
}
ip=ip 8;
}
return result.toString (;
}
//*
@param ip
@return
*/
publicstaticstringlongtoip2(longip ) {
return(IP24 )0xFF )“.”)0xFF )“.”)0xFF )“.”) ip0xFF );
}
//*
获取当前计算机的IP
【一线巨头Java面试问题分析后端开发学习笔记最新框架解说视频实战项目源代码讲解】浏览器开放: qq.cn.hn/FTf免费领取@return */
公共静态字符串获取地址(
try {
enumerationenumnic=network interface.getnetworkinterfaces (;
enumNic.hasMoreElements (; () )。
networkinterfaceifc=enum NIC.nextelement (;
if(IFC.isup () ) ) )。
for (enumerationenumaddr=IFC.getinetaddresses );
enumAddr.hasMoreElements (; () )。
inetaddressaddress=enum addr.nextelement (;
if (addressinstanceofinet 4地址! address.isLoopbackAddress (
return address.getHostAddress (;
}
}
}
}
return InetAddress.getLocalHost ().getHostAddress );
}catch(ioexceptione ) {
//log.warn (“unabletofindnon-loopback地址”,e );
e .打印堆栈跟踪(;
}
返回空值;
}
//*
对比方法