集群管理
集群管理部分增加了一些类,扩展了fourinone的功能。
使得集群管理中的集群管理者,host:port是可以在config.xml中配置的,而不是像demo那样需要硬编码。
增加一个类GroupConfigContext.java,从ConfigContext继承,增加一个函数
package com.fourinone;
public class GroupConfigContext extends ConfigContext {
public static String[][] getGroupConfig()
{
//从配置文件里面读取Group/servers配置
String servers = getConfig("Group","SERVERS",null);
return getServerFromStr(servers);
}
}
/*
增加类GroupBeanContext.java 从BeanContext继承, 增加一个函数getGroupPark
*/
package com.fourinone;
public class GroupBeanContext extends BeanContext {
public static ParkLocal getGroupPark(){
String[][] parkcfg = GroupConfigContext.getGroupConfig();
return getPark(parkcfg[0][0], Integer.parseInt(parkcfg[0][1]), parkcfg);//input serverconfiglist string[][]
}
}
/*
修改GroupManager
从配置文件里面读取Group/servers配置
*/
import com.fourinone.BeanContext;
import com.fourinone.GroupConfigContext;
public class GroupManager
{
public static void main(String[] args)
{
// String[][] master = new String[][]{{"localhost","1888"},{"localhost","1889"}};
// String[][] slave = new String[][]{{"localhost","1889"},{"localhost","1888"}};
String[][] parkcfg = GroupConfigContext.getGroupConfig();
String[][] master = new String[][]{{parkcfg[0][0],parkcfg[0][1]},{parkcfg[1][0],parkcfg[1][1]}};
String[][] slave = new String[][]{{parkcfg[1][0],parkcfg[1][1]},{parkcfg[0][0],parkcfg[0][1]}};
// startPark(parkcfg[0][0], Integer.parseInt(parkcfg[0][1]), parkcfg);
String[][] server = null;
if(args[0].equalsIgnoreCase("M"))
server = master;
else if(args[0].equalsIgnoreCase("S"))
server = slave;
BeanContext.startPark(server[0][0],Integer.parseInt(server[0][1]), server);
}
}
/*
修改GroupServer.java
从配置文件里面读取Group/servers配置
*/
import java.util.List;
import com.fourinone.AuthPolicy;
import com.fourinone.GroupBeanContext;
import com.fourinone.ObjectBean;
import com.fourinone.ParkLocal;
public class GroupServer
{
public static void main(String[] args)
{
ParkLocal pl = GroupBeanContext.getGroupPark();//BeanContext.getPark();
pl.create("group", args[0], args[0], AuthPolicy.OP_ALL, true);
List<ObjectBean> oldls = null;
while(true){
List<ObjectBean> newls = pl.getLastest("group", oldls);
if(newls!=null){
System.out.println("Group:"+newls);
oldls = newls;
}
}
}
}