This commit is contained in:
地平线
2015-11-05 10:13:44 +08:00
parent b3d05bdbe9
commit fc8109cc6e
2 changed files with 78 additions and 27 deletions

View File

@@ -16,6 +16,7 @@ import java.io.*;
import java.net.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.logging.*;
/**
@@ -24,16 +25,17 @@ import java.util.logging.*;
*/
public class SncpTest {
private static final String protocol = Sncp.DEFAULT_PROTOCOL;
private static final String protocol = "TCP";// Sncp.DEFAULT_PROTOCOL;
private static final String serviceName = "";
private static final String myhost = Utility.localInetAddress().getHostAddress();
private static final int port = 4040;
private static final int port2 = 4240;
private static final int port2 = 0; // 4240;
public static void main(String[] args) throws Exception {
ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert());
ByteArrayOutputStream out = new ByteArrayOutputStream();
final PrintStream ps = new PrintStream(out);
ps.println("handlers = java.util.logging.ConsoleHandler");
@@ -41,35 +43,74 @@ public class SncpTest {
ps.println(".level = FINEST");
ps.println("java.util.logging.ConsoleHandler.level = FINEST");
LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray()));
runServer();
runServer2();
runClient();
ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert());
if (System.getProperty("client") == null) {
runServer();
if (port2 > 0) runServer2();
}
if (System.getProperty("server") == null) {
runClient();
}
if (System.getProperty("server") != null) {
System.in.read();
}
}
private static void runClient() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port);
InetSocketAddress addr = new InetSocketAddress(myhost, port);
Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(addr);
set.add(new InetSocketAddress("127.0.0.1", port2));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set);
SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport);
System.out.println(service);
if (port2 > 0) set.add(new InetSocketAddress(myhost, port2));
final Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
final SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport);
ResourceFactory.root().inject(service);
SncpTestBean bean = new SncpTestBean();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 2000; i++) {
sb.append("_").append(i).append("_0123456789");
// SncpTestBean bean = new SncpTestBean();
// StringBuilder sb = new StringBuilder();
// for (int i = 0; i < 2000; i++) {
// sb.append("_").append(i).append("_0123456789");
// }
// bean.setContent(sb.toString());
// bean.setContent("hello sncp");
final int count = 500;
final CountDownLatch cld = new CountDownLatch(count);
final AtomicInteger ai = new AtomicInteger();
for (int i = 0; i < count; i++) {
final int k = i + 1;
new Thread() {
@Override
public void run() {
try {
Thread.sleep(k);
SncpTestBean bean = new SncpTestBean();
bean.setId(k);
bean.setContent("数据: " + (k < 10 ? "0" : "") + k);
StringBuilder sb = new StringBuilder();
sb.append(k).append("------");
for (int i = 0; i < 1200; i++) {
sb.append("_").append(i).append("_").append(k).append("_0123456789");
}
bean.setContent(sb.toString());
//service.queryResult(bean);
service.updateBean(bean);
}catch(Exception e){
e.printStackTrace();
} finally {
long a = ai.incrementAndGet();
System.out.println("运行了 " + (a == 100 ? "--------------------------------------------------" : "") + a);
cld.countDown();
}
}
}.start();
}
bean.setContent(sb.toString());
bean.setContent("hello sncp");
System.out.println(service.queryResult(bean));
bean.setContent("xxxxx");
System.out.println(service.updateBean(bean));
cld.await();
System.out.println("---全部运行完毕---");
System.exit(0);
}
private static void runServer() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port);
InetSocketAddress addr = new InetSocketAddress(myhost, port);
final CountDownLatch cdl = new CountDownLatch(1);
new Thread() {
@Override
@@ -77,10 +118,10 @@ public class SncpTest {
try {
SncpServer server = new SncpServer(protocol);
Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(new InetSocketAddress("127.0.0.1", port2));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set);
if (port2 > 0) set.add(new InetSocketAddress(myhost, port2));
Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
List<Transport> sameTransports = new ArrayList<>();
sameTransports.add(transport);
if (port2 > 0) sameTransports.add(transport);
SncpTestService service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null);
ResourceFactory.root().inject(service);
server.addService(new ServiceWrapper(SncpTestService.class, service, "", new ClassFilter.FilterEntry(SncpTestService.class, null)));
@@ -100,7 +141,7 @@ public class SncpTest {
}
private static void runServer2() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port2);
InetSocketAddress addr = new InetSocketAddress(myhost, port2);
final CountDownLatch cdl = new CountDownLatch(1);
new Thread() {
@Override
@@ -108,8 +149,8 @@ public class SncpTest {
try {
SncpServer server = new SncpServer(protocol);
Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(new InetSocketAddress("127.0.0.1", port));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set);
set.add(new InetSocketAddress(myhost, port));
Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
List<Transport> sameTransports = new ArrayList<>();
sameTransports.add(transport);
Service service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null);

View File

@@ -5,8 +5,10 @@
*/
package com.wentch.redkale.test.sncp;
import com.wentch.redkale.convert.bson.*;
import com.wentch.redkale.convert.json.*;
import com.wentch.redkale.source.*;
import com.wentch.redkale.util.*;
/**
*
@@ -18,6 +20,14 @@ public class SncpTestBean implements FilterBean {
private String content;
public static void main(String[] args) throws Exception {
SncpTestBean bean = JsonFactory.root().getConvert().convertFrom(SncpTestBean.class, "{\"content\":\"数据: 01\",\"id\":1}");
System.out.println(bean);
byte[] bs = BsonFactory.root().getConvert().convertTo(bean);
Utility.println("---------", bs);
System.out.println(BsonFactory.root().getConvert().convertFrom(SncpTestBean.class, bs).toString());
}
@Override
public String toString() {
return JsonFactory.root().getConvert().convertTo(this);