Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
月轩居士
SkyWalking
提交
a2469423
S
SkyWalking
项目概览
月轩居士
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
4
Star
0
Fork
0
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
a2469423
编写于
1月 22, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add `set null` on the end of distuptor’s onEvent. Let GC works better.
上级
b17aec9b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
117 addition
and
94 deletion
+117
-94
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/disruptor/ack/SendAckSpanEventHandler.java
...eye/skywalking/disruptor/ack/SendAckSpanEventHandler.java
+14
-10
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/disruptor/request/SendRequestSpanEventHandler.java
...alking/disruptor/request/SendRequestSpanEventHandler.java
+14
-10
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/RouteAckSpanBufferEventHandler.java
...routing/disruptor/ack/RouteAckSpanBufferEventHandler.java
+26
-22
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java
...g/disruptor/request/RouteSendRequestSpanEventHandler.java
+26
-23
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java
...lking/storage/disruptor/ack/StoreAckSpanEventHandler.java
+17
-13
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java
...orage/disruptor/request/StoreRequestSpanEventHandler.java
+20
-16
未找到文件。
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/disruptor/ack/SendAckSpanEventHandler.java
浏览文件 @
a2469423
...
...
@@ -26,19 +26,23 @@ public class SendAckSpanEventHandler implements EventHandler<AckSpanHolder> {
@Override
public
void
onEvent
(
AckSpanHolder
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
if
(
buffer
[
bufferIdx
]
!=
null
)
{
return
;
}
try
{
if
(
buffer
[
bufferIdx
]
!=
null
)
{
return
;
}
buffer
[
bufferIdx
]
=
event
.
getData
();
bufferIdx
++;
buffer
[
bufferIdx
]
=
event
.
getData
();
bufferIdx
++;
if
(
bufferIdx
==
buffer
.
length
)
{
bufferIdx
=
0
;
}
if
(
bufferIdx
==
buffer
.
length
)
{
bufferIdx
=
0
;
}
if
(
endOfBatch
)
{
HealthCollector
.
getCurrentHeathReading
(
"SendAckSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"AckSpan messages were successful consumed ."
);
if
(
endOfBatch
)
{
HealthCollector
.
getCurrentHeathReading
(
"SendAckSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"AckSpan messages were successful consumed ."
);
}
}
finally
{
event
.
setData
(
null
);
}
}
...
...
skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/disruptor/request/SendRequestSpanEventHandler.java
浏览文件 @
a2469423
...
...
@@ -26,19 +26,23 @@ public class SendRequestSpanEventHandler implements EventHandler<RequestSpanHold
@Override
public
void
onEvent
(
RequestSpanHolder
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
if
(
buffer
[
bufferIdx
]
!=
null
)
{
return
;
}
try
{
if
(
buffer
[
bufferIdx
]
!=
null
)
{
return
;
}
buffer
[
bufferIdx
]
=
event
.
getData
();
bufferIdx
++;
buffer
[
bufferIdx
]
=
event
.
getData
();
bufferIdx
++;
if
(
bufferIdx
==
buffer
.
length
)
{
bufferIdx
=
0
;
}
if
(
bufferIdx
==
buffer
.
length
)
{
bufferIdx
=
0
;
}
if
(
endOfBatch
)
{
HealthCollector
.
getCurrentHeathReading
(
"SendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Request Span messages were successful consumed ."
);
if
(
endOfBatch
)
{
HealthCollector
.
getCurrentHeathReading
(
"SendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Request Span messages were successful consumed ."
);
}
}
finally
{
event
.
setData
(
null
);
}
}
...
...
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/ack/RouteAckSpanBufferEventHandler.java
浏览文件 @
a2469423
...
...
@@ -29,34 +29,38 @@ public class RouteAckSpanBufferEventHandler extends AbstractRouteSpanEventHandle
@Override
public
void
onEvent
(
AckSpanHolder
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
buffer
.
add
(
event
.
getAckSpan
());
try
{
buffer
.
add
(
event
.
getAckSpan
());
if
(
stop
)
{
try
{
for
(
AckSpan
ackSpan
:
buffer
)
{
SpanDisruptor
spanDisruptor
=
RoutingService
.
getRouter
().
lookup
(
ackSpan
);
spanDisruptor
.
saveSpan
(
ackSpan
);
if
(
stop
)
{
try
{
for
(
AckSpan
ackSpan
:
buffer
)
{
SpanDisruptor
spanDisruptor
=
RoutingService
.
getRouter
().
lookup
(
ackSpan
);
spanDisruptor
.
saveSpan
(
ackSpan
);
}
}
finally
{
buffer
.
clear
();
}
}
finally
{
buffer
.
clear
()
;
return
;
}
return
;
}
wait2Finish
();
wait2Finish
();
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
SpanStorageClient
spanStorageClient
=
getStorageClient
();
spanStorageClient
.
sendACKSpan
(
buffer
);
HealthCollector
.
getCurrentHeathReading
(
"RouteAckSpanBufferEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"RouteAckSpanBufferEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
SpanStorageClient
spanStorageClient
=
getStorageClient
();
spanStorageClient
.
sendACKSpan
(
buffer
);
HealthCollector
.
getCurrentHeathReading
(
"RouteAckSpanBufferEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"RouteAckSpanBufferEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
}
}
}
finally
{
event
.
setAckSpan
(
null
);
}
}
}
skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java
浏览文件 @
a2469423
package
com.a.eye.skywalking.routing.disruptor.request
;
import
com.a.eye.skywalking.health.report.HealthCollector
;
import
com.a.eye.skywalking.health.report.HeathReading
;
import
com.a.eye.skywalking.logging.api.ILog
;
...
...
@@ -33,34 +32,38 @@ public class RouteSendRequestSpanEventHandler extends AbstractRouteSpanEventHand
@Override
public
void
onEvent
(
RequestSpanHolder
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
buffer
.
add
(
event
.
getRequestSpan
());
try
{
buffer
.
add
(
event
.
getRequestSpan
());
if
(
stop
)
{
try
{
for
(
RequestSpan
requestSpan
:
buffer
)
{
SpanDisruptor
spanDisruptor
=
RoutingService
.
getRouter
().
lookup
(
requestSpan
);
spanDisruptor
.
saveSpan
(
requestSpan
);
if
(
stop
)
{
try
{
for
(
RequestSpan
requestSpan
:
buffer
)
{
SpanDisruptor
spanDisruptor
=
RoutingService
.
getRouter
().
lookup
(
requestSpan
);
spanDisruptor
.
saveSpan
(
requestSpan
);
}
}
finally
{
buffer
.
clear
();
}
}
finally
{
buffer
.
clear
();
}
return
;
}
return
;
}
wait2Finish
();
wait2Finish
();
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
SpanStorageClient
spanStorageClient
=
getStorageClient
();
spanStorageClient
.
sendRequestSpan
(
buffer
);
HealthCollector
.
getCurrentHeathReading
(
"RouteSendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"RequestSpan messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"RouteSendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
SpanStorageClient
spanStorageClient
=
getStorageClient
();
spanStorageClient
.
sendRequestSpan
(
buffer
);
HealthCollector
.
getCurrentHeathReading
(
"RouteSendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"RequestSpan messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"RouteSendRequestSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
}
}
}
finally
{
event
.
setRequestSpan
(
null
);
}
}
}
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/ack/StoreAckSpanEventHandler.java
浏览文件 @
a2469423
...
...
@@ -22,8 +22,8 @@ import java.util.List;
public
class
StoreAckSpanEventHandler
implements
EventHandler
<
AckSpanData
>
{
private
static
ILog
logger
=
LogManager
.
getLogger
(
StoreAckSpanEventHandler
.
class
);
private
DataFileWriter
fileWriter
;
private
IndexOperator
operator
;
private
int
bufferSize
;
private
IndexOperator
operator
;
private
int
bufferSize
;
private
List
<
SpanData
>
buffer
;
public
StoreAckSpanEventHandler
()
{
...
...
@@ -35,20 +35,24 @@ public class StoreAckSpanEventHandler implements EventHandler<AckSpanData> {
@Override
public
void
onEvent
(
AckSpanData
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
buffer
.
add
(
event
);
try
{
buffer
.
add
(
event
);
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
IndexMetaCollection
collection
=
fileWriter
.
write
(
buffer
);
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
IndexMetaCollection
collection
=
fileWriter
.
write
(
buffer
);
operator
.
batchUpdate
(
collection
);
HealthCollector
.
getCurrentHeathReading
(
"StoreAckSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"StoreAckSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
operator
.
batchUpdate
(
collection
);
HealthCollector
.
getCurrentHeathReading
(
"StoreAckSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"StoreAckSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
}
}
}
finally
{
event
.
setAckSpan
(
null
);
}
}
}
skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/disruptor/request/StoreRequestSpanEventHandler.java
浏览文件 @
a2469423
...
...
@@ -22,8 +22,8 @@ import java.util.List;
public
class
StoreRequestSpanEventHandler
implements
EventHandler
<
RequestSpanData
>
{
private
static
ILog
logger
=
LogManager
.
getLogger
(
StoreRequestSpanEventHandler
.
class
);
private
DataFileWriter
fileWriter
;
private
IndexOperator
operator
;
private
int
bufferSize
;
private
IndexOperator
operator
;
private
int
bufferSize
;
private
List
<
SpanData
>
buffer
;
public
StoreRequestSpanEventHandler
()
{
...
...
@@ -35,21 +35,25 @@ public class StoreRequestSpanEventHandler implements EventHandler<RequestSpanDat
@Override
public
void
onEvent
(
RequestSpanData
event
,
long
sequence
,
boolean
endOfBatch
)
throws
Exception
{
buffer
.
add
(
event
);
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
IndexMetaCollection
collection
=
fileWriter
.
write
(
buffer
);
operator
.
batchUpdate
(
collection
);
HealthCollector
.
getCurrentHeathReading
(
"StoreRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"StoreRequestSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
try
{
buffer
.
add
(
event
);
if
(
endOfBatch
||
buffer
.
size
()
==
bufferSize
)
{
try
{
IndexMetaCollection
collection
=
fileWriter
.
write
(
buffer
);
operator
.
batchUpdate
(
collection
);
HealthCollector
.
getCurrentHeathReading
(
"StoreRequestSpanEventHandler"
).
updateData
(
HeathReading
.
INFO
,
"Batch consume %s messages successfully."
,
buffer
.
size
());
}
catch
(
Throwable
e
)
{
logger
.
error
(
"Ack messages consume failure."
,
e
);
HealthCollector
.
getCurrentHeathReading
(
"StoreRequestSpanEventHandler"
).
updateData
(
HeathReading
.
ERROR
,
"Batch consume %s messages failure."
,
buffer
.
size
());
}
finally
{
buffer
.
clear
();
}
}
}
finally
{
event
.
setRequestSpan
(
null
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录