From 128a3b85dd06fc8fb030397e4a14e15107dcb8b2 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 3 Nov 2022 17:01:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=90=E8=A1=8C=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/ApplicationStartRunner.java | 73 +------------------ 1 file changed, 4 insertions(+), 69 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/ApplicationStartRunner.java b/servers/boe-server-all/src/main/java/com/xboe/ApplicationStartRunner.java index f0bd16b9..60d1ef51 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/ApplicationStartRunner.java +++ b/servers/boe-server-all/src/main/java/com/xboe/ApplicationStartRunner.java @@ -1,30 +1,17 @@ package com.xboe; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; - import javax.annotation.Resource; -import org.apache.commons.lang3.RandomUtils; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; -import com.xboe.common.utils.IDGenerator; -import com.xboe.module.idconfig.entity.IPMapping; -import com.xboe.module.idconfig.service.IIPMappingService; - -import lombok.extern.slf4j.Slf4j; +import com.xboe.module.idconfig.IdGeneratorAutoConfig; /** * 启动就执行的一些处理 */ -@Slf4j @Component public class ApplicationStartRunner implements ApplicationRunner { @@ -32,64 +19,12 @@ public class ApplicationStartRunner implements ApplicationRunner { Environment env; @Resource - IIPMappingService ipMappingService; + IdGeneratorAutoConfig autoConfig; @Override public void run(ApplicationArguments args) throws Exception { - -// Map ipconfig=new HashMap<>(); -// ipconfig.put("10.251.186.27",0);//测试环境 -// ipconfig.put("10.251.132.41",1); -// ipconfig.put("10.251.132.42",2); -// ipconfig.put("10.251.132.47",3); - - String ip=getLinuxLocalIp(); - - IPMapping ipm = ipMappingService.findByIP(ip); - Integer workServerId=null; - Integer dataCenterId=null; - if(ipm!=null) { - workServerId=ipm.getWorkNum(); - dataCenterId=ipm.getDcNum(); - }else { - log.warn("无IP【"+ip+"】的配置的workNum和DataCenterNum,系统自动生成随机数"); - workServerId=RandomUtils.nextInt(0,31); - dataCenterId=RandomUtils.nextInt(0,31); - ipm=new IPMapping(); - ipm.setIp(ip); - ipm.setDcNum(dataCenterId); - ipm.setWorkNum(workServerId); - ipMappingService.save(ipm); - } - IDGenerator.init(workServerId,dataCenterId); + //多服务器配置时生成的id根据服务器ip地址不同参数不同,防止不同服务器生成的id重复问题 + autoConfig.init(); } - private static String getLinuxLocalIp() throws SocketException { - String ip = ""; - try { - for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { - NetworkInterface intf = en.nextElement(); - //String name = intf.getName(); - //if (!name.contains("docker") && !name.contains("lo")){ - for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { - InetAddress inetAddress = enumIpAddr.nextElement(); - if (!inetAddress.isLoopbackAddress()) { - String ipaddress = inetAddress.getHostAddress().toString(); - if (!ipaddress.contains(":") && !ipaddress.contains("::") && !ipaddress.contains("0:0:") && !ipaddress.contains("fe80")) { - ip = ipaddress; - //log.error("获取的ip:"+ipaddress); - } - } - } - //} - } - }catch (SocketException ex) { - ip = "127.0.0.1"; - //log.error("获取ip地址异常",ex); - } - //log.error("获取的实际的ip:"+ip); - return ip; - } - - }