[강운덕] [LUCYSUS-1744] test의 hbase 설정 삭제. udp receiver의 deserializer를 thread local로 캐쉬하도록 변경.

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-server/trunk@2149 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Woonduk Kang
2013-08-14 05:27:01 +00:00
parent f54aefa62c
commit cc7ba0cdc8
5 changed files with 35 additions and 36 deletions
@@ -107,7 +107,7 @@ public class StatisticsCache {
private void drainAllLocalBuffer() {
try {
logger.debug("drain all local buffer");
logger.trace("drain all local buffer");
bufferListLock.lock();
for (Map<Key, Value> buffer : bufferList) {
@@ -160,7 +160,7 @@ public class StatisticsCache {
return;
}
logger.debug("flush cache");
logger.trace("flush cache");
Set<Entry<Key, Value>> entrySet = cache.entrySet();
for (Entry<Key, Value> entry : entrySet) {
@@ -16,6 +16,7 @@ import org.apache.thrift.TBase;
import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.NamedThreadLocal;
import java.io.IOException;
import java.net.*;
@@ -193,10 +194,16 @@ public class UDPReceiver implements DataReceiver {
private class DispatchPacket implements Runnable {
private final DatagramPacket packet;
private final ThreadLocal<HeaderTBaseDeserializer> deserializer = new NamedThreadLocal<HeaderTBaseDeserializer>("HeaderTBaseDeserializer") {
@Override
protected HeaderTBaseDeserializer initialValue() {
return new HeaderTBaseDeserializer();
}
};
private DispatchPacket(DatagramPacket packet) {
if (packet == null) {
throw new NullPointerException("packet");
throw new NullPointerException("packet must not be null");
}
this.packet = packet;
}
@@ -205,8 +212,7 @@ public class UDPReceiver implements DataReceiver {
public void run() {
Timer.Context time = timer.time();
// thread local로 캐쉬할까? 근데 worker라서 별로 영향이 없을거 같음.
HeaderTBaseDeserializer deserializer = new HeaderTBaseDeserializer();
HeaderTBaseDeserializer deserializer = this.deserializer.get();
try {
TBase<?, ?> tBase = deserializer.deserialize(packet.getData());
// dispatch는 비지니스 로직 실행을 의미.
@@ -0,0 +1,24 @@
package com.nhn.pinpoint.collector.dao.hbase;
import com.sematext.hbase.wd.RowKeyDistributorByHashPrefix;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext-test.xml")
public class HbaseApplicationTraceIndexDaoTest {
@Autowired
private RowKeyDistributorByHashPrefix distributorByHashPrefix;
@Test
public void testInsert() throws Exception {
// distributorByHashPrefix.getOriginalKey(Bytes.read(1));
}
}
-8
View File
@@ -1,8 +0,0 @@
hbase.client.host=localhost
# 가상머신 장비
#hbase.client.host=10.101.17.108
#개발적용 장비
#hbase.client.host=114.111.41.36
hbase.client.port=2181
hbase.htable.threads.max=32
@@ -1,23 +0,0 @@
#HBaseTemplate에서 사용하는 HtablePool사이즈
hbase.hTablePoolSize=1024
# tco listen port
collectorTcpListenPort=9994
# udp listen port
collectorUdpListenPort=9995
# udp메시지를 처리할 thread 수, hbase.hTablePoolSize사이즈와 같이 조절해야 한다.
udpWorkerThread=512
# udp메시지를 처리할 thread가 모두 동작중일때 요청을 몇개까지 큐잉할지?
udpWorkerQueueSize=5120
#udp socket의 receiveBufferSize설정. 만약 udp 손실율이 심할 경우 아래 사항을 체크해볼것.
udpSocketReceiveBufferSize=4194304
#$ /sbin/sysctl -a | grep -e rmem -e wmem
#net.core.wmem_max = 524288
#net.core.rmem_max = 524288
#net.core.wmem_default = 229376
#net.core.rmem_default = 229376
#위 설정을 다음과 같이 수정합니다.
#irteamsu$ sudo sysctl -w net.core.rmem_max=4194304