Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
aa37940d
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,发现更多精彩内容 >>
提交
aa37940d
编写于
12月 01, 2015
作者:
Z
zhangxin10
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
解决DataSenderFactory中的DataSenderChecker对于按百分比选择连接,处理不正确
上级
33e38fa7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
13 deletion
+17
-13
skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactory.java
...ava/com/ai/cloud/skywalking/sender/DataSenderFactory.java
+17
-13
未找到文件。
skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactory.java
浏览文件 @
aa37940d
...
...
@@ -21,8 +21,8 @@ public class DataSenderFactory {
private
static
Logger
logger
=
Logger
.
getLogger
(
DataSenderFactory
.
class
.
getName
());
private
static
Set
<
SocketAddress
>
socketAddresses
=
new
HashSe
t
<
SocketAddress
>();
private
static
Set
<
SocketAddress
>
unUsedSocketAddresses
=
new
HashSe
t
<
SocketAddress
>();
private
static
List
<
SocketAddress
>
socketAddresses
=
new
ArrayLis
t
<
SocketAddress
>();
private
static
List
<
SocketAddress
>
unUsedSocketAddresses
=
new
ArrayLis
t
<
SocketAddress
>();
private
static
List
<
DataSender
>
availableSenders
=
new
ArrayList
<
DataSender
>();
private
static
Object
lock
=
new
Object
();
...
...
@@ -31,13 +31,17 @@ public class DataSenderFactory {
if
(
StringUtil
.
isEmpty
(
Config
.
Sender
.
SERVERS_ADDR
))
{
throw
new
IllegalArgumentException
(
"Collection service configuration error."
);
}
//过滤重复地址
Set
<
SocketAddress
>
tmpSocktAddress
=
new
HashSet
<
SocketAddress
>();
for
(
String
serverConfig
:
Config
.
Sender
.
SERVERS_ADDR
.
split
(
";"
))
{
String
[]
server
=
serverConfig
.
split
(
":"
);
if
(
server
.
length
!=
2
)
throw
new
IllegalArgumentException
(
"Collection service configuration error."
);
socketAddresse
s
.
add
(
new
InetSocketAddress
(
server
[
0
],
Integer
.
valueOf
(
server
[
1
])));
tmpSocktAddres
s
.
add
(
new
InetSocketAddress
(
server
[
0
],
Integer
.
valueOf
(
server
[
1
])));
}
socketAddresses
.
addAll
(
tmpSocktAddress
);
}
catch
(
Exception
e
)
{
logger
.
log
(
Level
.
ALL
,
"Collection service configuration error."
,
e
);
System
.
exit
(-
1
);
...
...
@@ -51,7 +55,7 @@ public class DataSenderFactory {
try
{
Thread
.
sleep
(
RETRY_GET_SENDER_WAIT_INTERVAL
);
}
catch
(
InterruptedException
e
)
{
logger
.
log
(
Level
.
ALL
,
"Sleep failure"
,
e
);
logger
.
log
(
Level
.
ALL
,
"Sleep failure"
,
e
);
}
}
return
availableSenders
.
get
(
ThreadLocalRandom
.
current
().
nextInt
(
0
,
availableSenders
.
size
()));
...
...
@@ -72,18 +76,18 @@ public class DataSenderFactory {
// 初始化DataSender
List
<
SocketAddress
>
usedSocketAddress
=
new
ArrayList
<
SocketAddress
>();
for
(
SocketAddress
socketAddress
:
socketAddresses
)
{
if
(
availableSenders
.
size
()
>=
availableSize
)
{
break
;
}
int
index
;
while
(
availableSenders
.
size
()
<
availableSize
)
{
// 随机获取服务器地址
index
=
ThreadLocalRandom
.
current
().
nextInt
(
socketAddresses
.
size
());
try
{
availableSenders
.
add
(
new
DataSender
(
socketAddress
));
usedSocketAddress
.
add
(
socketAddress
);
availableSenders
.
add
(
new
DataSender
(
socketAddress
es
.
get
(
index
)
));
usedSocketAddress
.
add
(
socketAddress
es
.
get
(
index
)
);
}
catch
(
IOException
e
)
{
unUsedSocketAddresses
.
add
(
socketAddress
);
unUsedSocketAddresses
.
add
(
socketAddress
es
.
get
(
index
)
);
}
}
unUsedSocketAddresses
=
new
HashSe
t
<
SocketAddress
>(
socketAddresses
);
unUsedSocketAddresses
=
new
ArrayLis
t
<
SocketAddress
>(
socketAddresses
);
unUsedSocketAddresses
.
removeAll
(
usedSocketAddress
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录