stats
This commit is contained in:
parent
70ed9ed641
commit
7b5b485200
|
@ -16,5 +16,8 @@ public enum EMSGID
|
|||
nm_read,
|
||||
nm_write_1,
|
||||
nm_write_1_res,
|
||||
nm_write_2
|
||||
nm_write_2,
|
||||
|
||||
nr_stats,
|
||||
nr_stats_res
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||
import messageBody.memcachedmsg.nm_Connected;
|
||||
import messageBody.requestMsg.nr_Connected_mem_back;
|
||||
import messageBody.requestMsg.nr_Read_res;
|
||||
import messageBody.requestMsg.nr_Stats_res;
|
||||
import messageBody.requestMsg.nr_write_res;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
|
@ -16,6 +17,7 @@ public class RegisterHandler
|
|||
initHandler(EMSGID.nm_connected.ordinal(), nm_Connected.class);
|
||||
initHandler(EMSGID.nr_connected_mem_back.ordinal(), nr_Connected_mem_back.class);
|
||||
initHandler(EMSGID.nr_read_res.ordinal(), nr_Read_res.class);
|
||||
initHandler(EMSGID.nr_stats_res.ordinal(), nr_Stats_res.class);
|
||||
initHandler(EMSGID.nr_write_res.ordinal(), nr_write_res.class);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package server;
|
||||
package com.myself.server;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Properties;
|
||||
import java.util.Random;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
|
@ -18,9 +15,8 @@ import org.w3c.dom.Node;
|
|||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import r_memcached.MemcachedMgr;
|
||||
import server.ClientConfig;
|
||||
import server.Server;
|
||||
import com.myself.memcached.MemcachedMgr;
|
||||
|
||||
import common.RegisterHandler;
|
||||
public class WebServerMain
|
||||
{
|
||||
|
@ -31,26 +27,17 @@ public class WebServerMain
|
|||
File f = new File(System.getProperty("user.dir"));
|
||||
String path = f.getPath() + File.separator + "bin" + File.separator;
|
||||
readClientsXML(path+"client.xml");
|
||||
try {
|
||||
Properties properties = new Properties();
|
||||
properties.load(new FileInputStream(path+"config.properties"));
|
||||
MemcachedMgr.nCopyNode = Integer.parseInt(properties.getProperty("replicasNum"));
|
||||
} catch (FileNotFoundException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static class bench extends Thread
|
||||
{
|
||||
private int runs;
|
||||
@SuppressWarnings("unused")
|
||||
private int threadNum;
|
||||
private String object;
|
||||
private String[] keys;
|
||||
@SuppressWarnings("unused")
|
||||
private int size;
|
||||
private int nums;
|
||||
private double rate;
|
||||
|
@ -68,11 +55,9 @@ public class WebServerMain
|
|||
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch (InterruptedException e)
|
||||
{
|
||||
} catch (InterruptedException e){
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -87,22 +72,16 @@ public class WebServerMain
|
|||
public void randReadWrite(double scale)
|
||||
{
|
||||
Random randNum = new Random();
|
||||
for (int i = 0; i < runs; i++)
|
||||
{
|
||||
if (Math.random()<scale)
|
||||
{
|
||||
for (int i = 0; i < runs; i++) {
|
||||
if (Math.random()<scale){
|
||||
webSession.getInstance().get(keys[randNum.nextInt(nums)]);
|
||||
}
|
||||
else
|
||||
{
|
||||
}else {
|
||||
webSession.getInstance().set(keys[randNum.nextInt(nums)], object);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
try {
|
||||
Thread.sleep((long) 0.00001);
|
||||
} catch (InterruptedException e)
|
||||
{
|
||||
} catch (InterruptedException e){
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -190,7 +169,8 @@ public class WebServerMain
|
|||
{
|
||||
m++;
|
||||
localClient.client_port = Integer.decode(record.getTextContent());
|
||||
}
|
||||
}
|
||||
|
||||
else if (record.getNodeName().equals("memcached"))
|
||||
{
|
||||
m++;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package server;
|
||||
package com.myself.server;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
@ -11,18 +11,15 @@ import messageBody.memcachedmsg.nm_Connected_web_back;
|
|||
import messageBody.requestMsg.nr_Connected_mem_back;
|
||||
import messageBody.requestMsg.nr_Read;
|
||||
import messageBody.requestMsg.nr_Read_res;
|
||||
import messageBody.requestMsg.nr_Stats;
|
||||
import messageBody.requestMsg.nr_Stats_res;
|
||||
import messageBody.requestMsg.nr_write;
|
||||
import messageBody.requestMsg.nr_write_res;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.Priority;
|
||||
import org.jboss.netty.channel.Channel;
|
||||
import org.jboss.netty.channel.MessageEvent;
|
||||
import org.jboss.netty.util.internal.ConcurrentHashMap;
|
||||
|
||||
import database.DBMessage;
|
||||
import r_memcached.MemcachedMgr;
|
||||
import server.NetMsg;
|
||||
import com.myself.memcached.MemcachedMgr;
|
||||
import common.EMSGID;
|
||||
|
||||
public class webSession implements Runnable
|
||||
|
@ -147,7 +144,12 @@ public class webSession implements Runnable
|
|||
nr_Connected_mem_back msgLite= msg.getMessageLite();
|
||||
addClientChannel(msgLite.getMemID(), e.getChannel());
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case nr_stats_res: {
|
||||
nr_Stats_res msgBody = msg.getMessageLite();
|
||||
System.out.println("stats:\n"+msgBody.getValue());
|
||||
}
|
||||
break;
|
||||
case nr_read_res:
|
||||
{
|
||||
nr_Read_res msgBody = msg.getMessageLite();
|
||||
|
@ -260,6 +262,16 @@ public class webSession implements Runnable
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean allSendMsg2Memcached(NetMsg msg){
|
||||
for (int i = 0; i < MemcachedMgr.nCopyNode; i++) {
|
||||
Channel eChannel = getClientChannel(i);
|
||||
if (eChannel != null) {
|
||||
sendMsg(eChannel, msg);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean randSendMsg2Memcached(Integer hash, NetMsg msg)
|
||||
{
|
||||
Random random = new Random();
|
||||
|
@ -305,6 +317,15 @@ public class webSession implements Runnable
|
|||
}
|
||||
}
|
||||
|
||||
public boolean stats() {
|
||||
nr_Stats.Builder builder = nr_Stats.newBuilder();
|
||||
builder.setTime(System.nanoTime());
|
||||
NetMsg msg = NetMsg.newMessage();
|
||||
msg.setMessageLite(builder);
|
||||
msg.setMsgID(EMSGID.nr_stats);
|
||||
allSendMsg2Memcached(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean get(String key)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue