当前位置: 首页 > 工具软件 > Fourinone > 使用案例 >

Fourinone学习笔记-集群管理

殳毅
2023-12-01

集群管理

 

集群管理部分增加了一些类,扩展了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;
   }
  }
 }
}

 类似资料: