zoukankan      html  css  js  c++  java
  • Netty使用(一)

    1、Netty介绍

    Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架;
    提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
    对比于BIO(Blocking I/O,阻塞IO),它的并发性能得到了很大提高。
    提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。
    Netty的优点

    • 并发高
    • 传输快
    • 封装好

    2、Netty的核心组件

    为了后期更好地理解和进一步深入 Netty,有必要总体认识一下 Netty 所用到的核心组件以及它们在整个 Netty 架构中是如何协调工作的。
    Nettty 有如下几个核心组件:

    • Channel
    • ChannelFuture
    • EventLoop
    • ChannelHandler
    • ChannelPipeline

    2.1 Channel

     基础的IO操作,如绑定、连接、读写等都依赖于底层网络传输所提供的原语,
    在Java的网络编程中,基础核心类是Socket,而Netty的Channel提供了一组API,极大地简化了直接与Socket进行操作的复杂性,
    并且Channel是很多类的父类,如EmbeddedChannel、LocalServerChannel、NioDatagramChannel、NioSctpChannel、NioSocketChannel等。

    2.2 ChannelFuture

    Netty中的所有IO操作都是异步的,不会立即返回,需要在稍后确定操作结果。
    因此Netty提供了ChannelFuture,其addListener方法可以注册一个ChannelFutureListener,当操作完成时,不管成功还是失败,均会被通知。
    ChannelFuture存储了之后执行的操作的结果并且无法预测操作何时被执行,提交至Channel的操作按照被唤醒的顺序被执行。

  • 相关阅读:
    div标签和span标签的简单区别
    方法重载的好处及区别
    异步计算工具
    设置"用于统计的冗余字段"要谨慎
    如何建立索引
    NFS,Memcached,Tokyo tyrant实现session共享性能测试
    mysql cache功能小记
    PHP程序员也要学会使用“异常”
    xdebug: var_dump函数设置
    用shell写个简单的log监控程序
  • 原文地址:https://www.cnblogs.com/xidianzxm/p/11743296.html
Copyright © 2011-2022 走看看