This commit is contained in:
lyr90329 2014-08-13 17:45:28 +08:00
parent 70ed9ed641
commit 7b5b485200
4 changed files with 49 additions and 43 deletions

View File

@ -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
}

View File

@ -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);
}

View File

@ -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++;

View File

@ -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)
{