KLALB UDP TEST

This commit is contained in:
Administrator
2024-01-30 16:54:09 +08:00
parent 722ab9710f
commit b4fccf3a03
67 changed files with 1977 additions and 929 deletions
+31 -45
View File
@@ -1,72 +1,58 @@
package org.kne.cloud.network.klalb;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.kne.cloud.network.klalb.LineManager.LineEntry;
import org.kne.cloud.network.mport.MultipurposeSocketAddress;
import org.kne.cloud.network.mport.ProxyProfileAnalyser;
import org.kne.cloud.network.mport.ProxyProfileExecutor;
import org.kne.cloud.network.mport.TCPListener;
import org.kne.cloud.network.KLALBProxyConfigJsonExecuter;
import org.kne.cloud.network.SocketToServiceProxy;
import org.kne.cloud.network.SocketToSocketProxy;
public class KLALBMain {
public static TCPListener tcpl;
public static ServerPropties sp;
public static KLALBController kc;
public static ProxyProfileExecutor pfa;
public static File f=new File("lines.cfg");
public static void main(String[] args) throws IOException {
System.out.println("KLALB负载均衡V2.0");
sp=new ServerPropties();
System.out.println("虚拟地址:"+sp.getVirtualIP().getHostAddress());
kc=new KLALBController(sp.getVirtualIP());
kc.registerToProxyTypeAs("KLALB");
pfa=new ProxyProfileExecutor();
pfa.load(f);
System.out.println(CONST.klalb+" V"+CONST.klalbver);
Scanner scn=new Scanner(System.in);
File configJson=new File("klalbconfig.json");
KLALBProxyConfigJsonExecuter kpcje=new KLALBProxyConfigJsonExecuter();
kpcje.loadConfigJson(configJson);
while(true) {
String s=scn.next();
String[]sc=s.split(" ");
switch(sc[0]) {
case "help":
System.out.print("help:查看命令使用说明");
System.out.print("state:查看线路状态");
System.out.println("reload:重新加载线路配置");
//System.out.println("reload:重新加载线路配置文件");
System.out.println("reconnect:所有离线线路跳过重连等待时间立即尝试重连");
System.out.println("stop:退出程序");
break;
case "reloadlines":
pfa.load(f);
System.out.println("重新加载线路配置成功");
break;
case "state":
LineManager le=kc.getLineManager();
for (Iterator<java.util.Map.Entry<MultipurposeSocketAddress, LineEntry>> iterator = le.entrySet().iterator(); iterator.hasNext();) {
java.util.Map.Entry<MultipurposeSocketAddress, LineEntry> hostPort = iterator.next();
System.out.println(hostPort.getValue() .toString());
System.out.println("状态\t上传流量\t下载流量\t上传速度\t下载速度\t延迟\t抖动\t下一次重试");
for (Iterator<KLALBRemoteLine> iterator = kpcje.getKlalbController().getLines().iterator(); iterator.hasNext();) {
KLALBRemoteLine hostPort = iterator.next();
System.out.println(hostPort .toString2());
//System.out.println();
}
break;
case "stop":
System.exit(0);
break;
case "reconnect":
kpcje.getKlalbController().reconnectImmediately();
break;
default:
System.out.println("未知命令,请输入help以查询指令说明");
}
}
}
private static void openPort(int port) throws IOException {
if(tcpl!=null)
tcpl.close();
tcpl=new TCPListener(new MultipurposeSocketAddress("0.0.0.0", port));
tcpl.setCon((soc)->{
KLALBRemoteSocket krs=new KLALBRemoteSocket(soc);
kc.addRemoteSocket(krs);
});
tcpl.open();
}
}