From 55c2d84befac7dd6423c98facd6a28eb083da119 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Fri, 29 Jan 2016 10:49:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E5=9C=A8=E6=9E=81?= =?UTF-8?q?=E7=AB=AF=E6=83=85=E5=86=B5=E4=B8=8BUserId=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E8=A7=A6=E5=8F=91=E9=87=8D=E6=96=B0=E5=88=86?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skywalking/alarm/AlarmProcessServer.java | 2 +- ...read.java => UserNumberInspectThread.java} | 15 ++++---- .../skywalking/alarm/util/MD5Encryption.java | 35 +++++++++++++++++++ 3 files changed, 44 insertions(+), 8 deletions(-) rename skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/{UserInfoInspectThread.java => UserNumberInspectThread.java} (73%) create mode 100644 skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java diff --git a/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java index 33440f833..a15517300 100644 --- a/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java +++ b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java @@ -38,7 +38,7 @@ public class AlarmProcessServer { processThreads.add(tmpThread); } logger.info("Successfully launched {} processing threads.", Config.Server.PROCESS_THREAD_SIZE); - new UserInfoInspectThread().start(); + new UserNumberInspectThread().start(); logger.info("Successfully launched the thread that inspect the number of user"); logger.info("Alarm process server successfully started."); while (true) { diff --git a/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserInfoInspectThread.java b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserNumberInspectThread.java similarity index 73% rename from skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserInfoInspectThread.java rename to skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserNumberInspectThread.java index 2ac5a9153..3a06aae4c 100644 --- a/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserInfoInspectThread.java +++ b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserNumberInspectThread.java @@ -2,6 +2,7 @@ package com.ai.cloud.skywalking.alarm; import com.ai.cloud.skywalking.alarm.conf.Config; import com.ai.cloud.skywalking.alarm.dao.AlarmMessageDao; +import com.ai.cloud.skywalking.alarm.util.MD5Encryption; import com.ai.cloud.skywalking.alarm.util.ZKUtil; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.apache.logging.log4j.LogManager; @@ -10,13 +11,13 @@ import org.apache.logging.log4j.Logger; import java.sql.SQLException; import java.util.concurrent.TimeUnit; -public class UserInfoInspectThread extends Thread { +public class UserNumberInspectThread extends Thread { private boolean isInspector = false; private InterProcessMutex inspectorLock = new InterProcessMutex(ZKUtil.getZkClient(), Config.ZKPath.INSPECTOR_LOCK_PATH); - private int userHashCode; - private Logger logger = LogManager.getLogger(UserInfoInspectThread.class); + private String userIdsEncryptedStr; + private Logger logger = LogManager.getLogger(UserNumberInspectThread.class); public void run() { while (true) { @@ -28,7 +29,7 @@ public class UserInfoInspectThread extends Thread { } isInspector = true; - userHashCode = AlarmMessageDao.selectAllUserIds().toString().hashCode(); + userIdsEncryptedStr = MD5Encryption.getEncryption(AlarmMessageDao.selectAllUserIds().toString()); } // 判断上次用户数量是否发生变化 @@ -46,11 +47,11 @@ public class UserInfoInspectThread extends Thread { } private boolean checkUserNumber() throws SQLException { - int currentUserHashCode = AlarmMessageDao.selectAllUserIds().toString().hashCode(); - if (userHashCode == currentUserHashCode) { + String currentUserIdsEncryptedStr = MD5Encryption.getEncryption(AlarmMessageDao.selectAllUserIds().toString()); + if (userIdsEncryptedStr == currentUserIdsEncryptedStr) { return false; } - userHashCode = currentUserHashCode; + userIdsEncryptedStr = currentUserIdsEncryptedStr; return true; } } diff --git a/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java new file mode 100644 index 000000000..c61207936 --- /dev/null +++ b/skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java @@ -0,0 +1,35 @@ +package com.ai.cloud.skywalking.alarm.util; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class MD5Encryption { + private static Logger logger = LogManager.getLogger(DBConnectUtil.class); + + private MD5Encryption() { + } + + public static String getEncryption(String originString) { + String result = null; + if (originString != null) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte bytes[] = md.digest(originString.getBytes()); + for (int i = 0; i < bytes.length; i++) { + String str = Integer.toHexString(bytes[i] & 0xFF); + if (str.length() == 1) { + str += "F"; + } + result += str; + } + } catch (NoSuchAlgorithmException e) { + logger.error("No such algorithmException.", e); + return originString; + } + } + return result.toUpperCase(); + } +} \ No newline at end of file