package com.ctriposs.baiji.rpc.server.netty;
import com.ctriposs.baiji.rpc.server.HttpRequestRouter;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.socket.SocketChannel;
import io.netty.util.concurrent.DefaultEventExecutorGroup;
import io.netty.util.concurrent.EventExecutorGroup;
public class NonBlockingHttpServer extends HttpServer {
private final int _routerExecutorThreads;
NonBlockingHttpServer(ServerBootstrap bootstrap, HttpRequestRouter requestRouter,
int routerExecutorThreads) {
super(bootstrap, requestRouter);
_routerExecutorThreads = routerExecutorThreads;
}
@Override
protected void addRouterToPipeline(SocketChannel ch) {
EventExecutorGroup eventExecutor = new DefaultEventExecutorGroup(_routerExecutorThreads);
ch.pipeline().addLast(eventExecutor, "router", new ServerHandler(_requestRouter));
}
}