Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
55c2d84b
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
55c2d84b
编写于
1月 29, 2016
作者:
A
ascrutae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1. 修复在极端情况下UserId变化不会触发重新分配
上级
61e402a4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
44 addition
and
8 deletion
+44
-8
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java
...ava/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java
+1
-1
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/UserNumberInspectThread.java
...om/ai/cloud/skywalking/alarm/UserNumberInspectThread.java
+8
-7
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java
...ava/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java
+35
-0
未找到文件。
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/AlarmProcessServer.java
浏览文件 @
55c2d84b
...
...
@@ -38,7 +38,7 @@ public class AlarmProcessServer {
processThreads
.
add
(
tmpThread
);
}
logger
.
info
(
"Successfully launched {} processing threads."
,
Config
.
Server
.
PROCESS_THREAD_SIZE
);
new
User
Info
InspectThread
().
start
();
new
User
Number
InspectThread
().
start
();
logger
.
info
(
"Successfully launched the thread that inspect the number of user"
);
logger
.
info
(
"Alarm process server successfully started."
);
while
(
true
)
{
...
...
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/User
Info
InspectThread.java
→
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/User
Number
InspectThread.java
浏览文件 @
55c2d84b
...
...
@@ -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
User
Info
InspectThread
extends
Thread
{
public
class
User
Number
InspectThread
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
(
User
Info
InspectThread
.
class
);
private
String
userIdsEncryptedStr
;
private
Logger
logger
=
LogManager
.
getLogger
(
User
Number
InspectThread
.
class
);
public
void
run
()
{
while
(
true
)
{
...
...
@@ -28,7 +29,7 @@ public class UserInfoInspectThread extends Thread {
}
isInspector
=
true
;
user
HashCode
=
AlarmMessageDao
.
selectAllUserIds
().
toString
().
hashCode
(
);
user
IdsEncryptedStr
=
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
(
user
HashCode
==
currentUserHashCode
)
{
String
currentUserIdsEncryptedStr
=
MD5Encryption
.
getEncryption
(
AlarmMessageDao
.
selectAllUserIds
().
toString
()
);
if
(
user
IdsEncryptedStr
==
currentUserIdsEncryptedStr
)
{
return
false
;
}
user
HashCode
=
currentUserHashCode
;
user
IdsEncryptedStr
=
currentUserIdsEncryptedStr
;
return
true
;
}
}
skywalking-alarm/src/main/java/com/ai/cloud/skywalking/alarm/util/MD5Encryption.java
0 → 100644
浏览文件 @
55c2d84b
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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录