亲宝软件园·资讯

展开

搭建生产级的Netty项目

渠唐 人气:1
Netty是Trustin Lee在2004年开发的一款高性能的网络应用程序框架。相比于JDK自带的NIO,Netty做了相当多的增强,且隔离了jdk nio的实现细节,API也比较友好,还支持流量整形等高级特性。在我们常见的一些开源项目中已经普遍的应用到了Netty,比如Dubbo、Elasticsearch、Zookeeper等。 #### Netty的具体开发 提示:因代码相对较多,这里只展示其主要部分,至于项目中用到的编解码器、工具类,请直接拉到最后下载源码!也欢迎顺手给个Star~ ##### 需要的依赖 ```xml ``` ##### Client端代码 ```java package com.example.nettydemo.client; import com.example.nettydemo.client.codec.*; import com.example.nettydemo.client.codec.dispatcher.OperationResultFuture; import com.example.nettydemo.client.codec.dispatcher.RequestPendingCenter; import com.example.nettydemo.client.codec.dispatcher.ResponseDispatcherHandler; import com.example.nettydemo.common.RequestMessage; import com.example.nettydemo.common.string.StringOperation; import com.example.nettydemo.util.IdUtil; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioChannelOption; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; import javax.net.ssl.SSLException; import java.util.concurrent.ExecutionException; public class Client { public static void main(String[] args) throws InterruptedException, ExecutionException, SSLException { Bootstrap bootstrap = new Bootstrap(); bootstrap.channel(NioSocketChannel.class); //客户端连接服务器最大允许时间,默认为30s bootstrap.option(NioChannelOption.CONNECT_TIMEOUT_MILLIS, 30 * 1000); //10s NioEventLoopGroup group = new NioEventLoopGroup(); try { bootstrap.group(group); RequestPendingCenter requestPendingCenter = new RequestPendingCenter(); LoggingHandler loggingHandler = new LoggingHandler(LogLevel.INFO); bootstrap.handler(new ChannelInitializer

加载全部内容

相关教程
猜你喜欢
用户评论