Netty简介

1.BIO、NIO和AIO的区别?

BIO 一个线程只做一件事,效率慢.

NIO 一个线程做多个事,效率块.(原理见 java_NIO)

AIO

Netty概念

NIO框架,它提供了对TCP、UDP和文件传输的支持

Netty特点

1)设计

统一的API,适用于不同的协议(阻塞和非阻塞)

基于灵活、可扩展的事件驱动模型

高度可定制的线程模型

可靠的无连接数据Socket支持(UDP)

2)性能

更好的吞吐量,低延迟

更省资源

尽量减少不必要的内存拷贝

3)安全

完整的SSL/TLS和STARTTLS的支持

能在Applet与Android的限制环境运行良好

4)健壮性

不再因过快、过慢或超负载连接导致OutOfMemoryError

不再有在高速网络环境下NIO读写频率不一致的问题

Netty使用场景

  • 构建高性能、低时延的各种 Java 中间件,例如 MQ、分布式服务框架、ESB 消息总线等,Netty 主要作为基础通信框架提供高性能、低时延的通信服务;
  • 公有或者私有协议栈的基础通信框架,例如可以基于 Netty 构建异步、高性能的 WebSocket 协议栈;
  • 各领域应用,例如大数据、游戏等,Netty 作为高性能的通信框架用于内部各模块的数据分发、传输和汇总等,实现模块之间高性能通信。

不同服务器之间通信.

阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信

原文地址:https://www.cnblogs.com/weijiqian/p/14159208.html