一、Netty入门——客户端服务器

    • 引入netty库

    在创建好的maven项目中引入netty库
    image.png
    image.pngimage.png

    • idea重写方法的快捷键:Ctrl+Oimage.png
    • 选中代码块包裹:Ctrl+Alt+T

    image.png

    • Alt+Ctrl+v快速生成变量
    • 快捷键设置

    image.png

    • 当线程数超过CPU核数*2,线程超过8时,重复使用了Thread 3-8

    image.png

    • 怎么查看变量中所有方法

    image.pngimage.png

    • pipeline Debug

    在serverHandler下断点,然后Debug NettyServer
    image.png

    运行客户端
    image.png
    断点走两步
    image.pngimage.png
    channel和pipeline互相包含,而ctx包含了两者

    • 小结

    image.png
    image.png
    image.png

    二、TaskQueue

    问题:**image.pngimage.png
    解决方法:

    • 用户程序自定义的普通任务[举例说明]

    image.png
    image.png
    image.png
    taskQueue中有2个任务

    • 用户自定义定时任务

    image.png

    • 非当前Reactor 线程调用Channel 的各种方法

    image.png

    三、异步模型

    • 基本介绍image.png
    • Future

    1) 表示异步的执行结果,可以通过它提供的方法来检测执行是否完成,比如检索计算等等.
    2) ChannelFuture 是一个接 口: public interface ChannelFuture extends Future
    image.png
    我们可以添加监听器,当监听的事件发生时,就会通知到监听器
    **

    • 工作原理图

    image.png
    1) 在使用Netty进行编程时,拦截操作和转换出入站数据只需要您提供callback 或利用future 即可。这使得链
    式操作简单、高效,并有利于编写可重用的、通用的代码。
    2)Netty框架的目标就是让你的业务逻辑从网络基础应用编码中分离出来、解脱出来

    • Future-Listener机制

    image.pngimage.png
    image.png