技术干货Java学习笔记程序猿阵线联盟-汇总各类技术干货

netty系列(一) 初识netty

2018-05-21  本文已影响120人  拉普拉斯兽

背景

对公司http服务进行压力测试,选择netty+springmvc与传统的tomcat服务进行对比。
选择的业务接口为用户能一步触达的页面(例如推送push后,许多用户会点击push通知条进入app某页面,造成并发);与第三方合作平台进行对接,实时发布需要改动的数据。

什么是netty呢

netty能做什么

为什么使用netty

事件驱动与组件

认识netty的话,一定需要提组件,组件是构成事件驱动的前提,利用组件构成一个个连串的行为,组件及其作用为以下几种:

EventLoopGroup group = new NioEventLoopGroup();
        Bootstrap b = new Bootstrap();

        b.group(group)
                .channel(NioSocketChannel.class)
                .handler(new ChannelInitializer<SocketChannel>() {
                    @Override
                    protected void initChannel(SocketChannel sc) throws Exception {
                        sc.pipeline().addLast(MarshallingCodeCFactory.buildMarshallingDecoder());
                        sc.pipeline().addLast(MarshallingCodeCFactory.buildMarshallingEncoder());
                        sc.pipeline().addLast(new ReadTimeoutHandler(30));
                        sc.pipeline().addLast(new ClienHeartBeattHandler());
                    }
                });

        ChannelFuture cf = b.connect("127.0.0.1", 8765).sync();

         cf.channel().closeFuture().sync();
         group.shutdownGracefully();

在对Bootstrap的group进行处理,先是创建一个Nio的channel,在handler对其进行特定的初始化操作等等,这是一个流程化的过程。

接下来的内容

上一篇 下一篇

猜你喜欢

热点阅读