2 icebounder icebounder 于 2016.05.10 10:53 提问

netty测试高并发的问题

先上代码,大家帮忙看下。
服务端:
package Server;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
public class HelloServer {
private static final int port = 7878;

public void start() throws InterruptedException {

  EventLoopGroup bossGroup = new NioEventLoopGroup();
  EventLoopGroup workGroup = new NioEventLoopGroup();
  try {

        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workGroup);
        b.channel(NioServerSocketChannel.class);
        b.option(ChannelOption.SO_BACKLOG, 1024);
        b.childHandler(new SCCHandler());

        // 绑定端口
        ChannelFuture f = b.bind(port).sync();

        // 等待服务端监听端口关闭
        f.channel().closeFuture().sync();

    } finally {

        // 优雅的退出
        bossGroup.shutdownGracefully();
        workGroup.shutdownGracefully();
    }

}

public static void main(String[] args) {
try {
new HelloServer().start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

客户端测试高并发的DEMO:

package Client;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;

public class HelloClient {
public static void main(String[] args) throws Exception {
ScheduledExecutorService scheduledThreadPool = Executors
.newScheduledThreadPool(3000);
for (int i = 0; i < 3000; i++) {
scheduledThreadPool.schedule(new Runnable() {
public void run() {
try {
System.out.println("go");
new HelloClient("192.168.2.88", 7878).start();
} catch (Exception e) {
System.out.println("压力测试失败->" + e.toString());
}
}
}, 200, TimeUnit.MILLISECONDS);
}
System.out.println("压力测试提交完成");
}

private final String host;
private final int port;

public HelloClient(String host, int port) {
    this.host = host;
    this.port = port;
}

public void start() throws Exception {
    System.out.println("链接服务器开始");
    EventLoopGroup group = new NioEventLoopGroup();
    try {
        Bootstrap b = new Bootstrap();
        b.group(group);
        b.channel(NioSocketChannel.class);

        // b.remoteAddress(new InetSocketAddress(host, port));

        b.option(ChannelOption.TCP_NODELAY, true);
        b.handler(new ClientCCHandler());

        // ChannelFuture f = b.connect().sync();

        ChannelFuture f = b.connect(host, port);

        f.channel().closeFuture().sync();
    } finally {
        group.shutdownGracefully();
    }
}

}

到5000以上就就会出现无法连接的状态了……求解!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java NIO框架Netty教程(十一)-并发访问测试(上)
之前更新了几篇关于JVM研究的文章,其实也是在做本篇文章验证的时候,跑的有点远,呵呵。回归Netty教程,这次要讲的其实是针对一个问题的研究和验证结论。另外,最近工作比较忙,所以可能会分文章更新一些阶段性的成果,而不是全部汇总更新,以免间隔过久。 起因是一个朋友,通过微博(OneCoder腾讯微博、OneCoder新浪微博、OneCoder网易微博、OneCoder搜狐微博)私信给我一个问题
Java高并发编程代码(Netty NIO 实例)
Java高并发编程代码(Netty NIO 实例)
Java NIO框架Netty教程(十三) 并发访问测试(下)
在上节(《Java NIO框架Netty教程(十二) 并发访问测试(中) 》),我们从各个角度对Netty并发的场景进行了测试。这节,我们将重点关注上节最后提到的问题。在多线程并发访问的情况下,会出现   警告: EXCEPTION, please implement one.coder.netty.chapter.eight.ObjectClientHandler.exceptionCa
java网络编程之Netty实战心跳检测(八)
java网络编程之Netty实战心跳检测(八)
Java与Netty实现高性能高并发
http://blog.csdn.net/nicajonh/article/details/54985352 1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性
Netty高性能大容量Socket并发(一):Netty性能测试
从测试结果看,Netty性能是非常高的,在所有使用默认配置的情况下,单台服务器能够达到4万次请求解析,作为RPC框架是足够用的。还有一个有趣的现象是每次都创建连接和重用连接的差别不大,性能损耗对应用层几乎没影响,但是大家如果在应用环境中使用每次新建的情况,一定要进行压测,确认没影响后再使用。
Netty实现高性能高并发
1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。 事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高
Netty 高并发深入浅出学习高并发服务器
Netty 高并发深入浅出学习高并发服务器Netty 高并发深入浅出学习高并发服务器
基于高并发的数据采集器
项目背景: 数据采集是当前很多智能设备都需要的。数据类型有很多种,有字符串,有json等等。交互协议有基于tcp的,有基于http的。现在针对原先项目面临的问题做出解决方案。2.面临问题1:并发量较低:原先项目采用裸写nio的方式,由于java本身的nio bug以及有些地方写的不太到位,单台机器并发量在200左右 2:业务逻辑耦合度相对较高,可读性差:由于很多地方采用字符串截取匹配来做路由的方式
Netty-Socketio Windows 性能测试
Netty-Socketio Windows性能测试测试机器配置服务器: 操作系统:Windows Server 2008 R2 Enterprise CPU:Intel i3-3220 内存:8GB JDK: 1.7.0_71-b14 64bit 测试机: 操作系统:Windows Server 2008 R2 Enterprise CPU:Intel G2030 内存:6GB 测试程序服务端程序