个人简介

Echo Blog


江湖无名 安心练剑
  • Netty-12-DatagramChannel UDP 无连接协议
    引导 DatagramChannel 前面的引导代码示例使用的都是基于TCP 协议的SocketChannel,但是Bootstrap 类也可以被用于无连接的协议。 为此,Netty 提供了各种 DatagramChannel 的实现。 唯一区别就是,不再调用 connect() 方法,而是只调用 bind() 方法, 代码示例 如代码清单8-8 所示。 import io.ne...
    2017-11-16 11:23:06 | Netty
  • Netty-12-ChannelOption
    使用 Netty 的 ChannelOption 和属性 在每个 Channel 创建时都手动配置它可能会变得相当乏味。 幸运的是,你不必这样做。相反,你可以使用 option() 方法来将 ChannelOption 应用到引导。 你所提供的值将会被自动应用到引导所创建的所有 Channel。 可用的 ChannelOption 包括了底层连接的详细信息,如 keep-alive ...
    2017-11-16 11:23:06 | Netty
  • Netty-12-ChannelInitializer 引导添加多个 handler
    场景 在所有我们展示过的代码示例中,我们都在引导的过程中调用了handler()或者childHandler()方法来添加单个的ChannelHandler。 这对于简单的应用程序来说可能已经足够了,但是它不能满足更加复杂的需求。 例如,一个必须要支持多种协议的应用程序将会有很多的ChannelHandler,而不会是一个庞大而又笨重的类。 正如你经常所看到的一样,你可以根据需要,通...
    2017-11-16 11:23:06 | Netty
  • Netty-12-Boostrap 客户端
    引导客户端和无连接协议 Bootstrap 类被用于客户端或者使用了无连接协议的应用程序中。 表8-1 提供了该类的一个概览,其中许多方法都继承自AbstractBootstrap 类。 方法概览 Bootstrap group(EventLoopGroup) 设置用于处理Channel 所有事件的EventLoopGroup Bootstrap channel(Class&...
    2017-11-16 11:23:06 | Netty
  • Netty-12-Boostrap 引导类 api
    前言 算法=控制+逻辑 如果将控制可逻辑分开,那么代码的可维护性就会大幅度提升。 同理如果可以将配置与组件之间分开,就像汽车在生产的时候各个组件分开,最后统一组装,那么灵活性也会大幅度提升。 结构化 在深入地学习了ChannelPipeline、ChannelHandler 和EventLoop 之后,你接下来的问题可能是: “如何将这些部分组织起来,成为一个可实际运行的应用程...
    2017-11-16 11:23:06 | Netty
  • Netty-11-EventLoop 之线程模型
    知识准备 简单地说,线程模型指定了操作系统、编程语言、框架或者应用程序的上下文中的线程管理的关键方面。 显而易见地,如何以及何时创建线程将对应用程序代码的执行产生显著的影响,因此开发人员需要理解与不同模型相关的权衡。 无论是他们自己选择模型,还是通过采用某种编程语言或者框架隐式地获得它,这都是真实的。 在本章中,我们将详细地探讨Netty 的线程模型。 它强大但又易用,并且和Net...
    2017-11-16 11:23:06 | Netty
  • Netty-11-EventLoop 之任务调度实现
    实现细节 这一节将更加详细地探讨Netty 的线程模型和任务调度实现的主要内容。 我们也将会提到需要注意的局限性,以及正在不断发展中的领域。 线程管理 Netty线程模型的卓越性能取决于对于当前执行的Thread的身份的确定它是否是分配给当前Channel以及它的EventLoop的那一个线程。 (回想一下EventLoop将负责处理一个Channel的整个生命周期内的所有事件。)...
    2017-11-16 11:23:06 | Netty
  • Netty-11-EventLoop 之任务调度
    任务调度 偶尔,你将需要调度一个任务以便稍后(延迟)执行或者周期性地执行。 例如,你可能想要注册一个在客户端已经连接了 5 分钟之后触发的任务。 一个常见的用例是,发送心跳消息到远程节点,以检查连接是否仍然还活着。如果没有响应,你便知道可以关闭该Channel 了。 在接下来的几节中,我们将展示如何使用核心的Java API 和Netty 的EventLoop 来调度任务。 然后,...
    2017-11-16 11:23:06 | Netty