netty基础概念
来源:互联网 发布:贷款软件哪个最快 编辑:程序博客网 时间:2024/06/06 05:58
参考 对于Netty的十一个疑问
一、什么是NIO?
有些人叫NewIo,实际上是None-blocked IO,非阻塞式IO,java7之后的NIO2是真正的NIO,引入了异步的通道,叫异步非阻塞IO,异步IO也被成为AIO
二、与BIO有什么分别?随着基于NIO的各类NIO框架的发展,以及基于NIO的Web服务器的发展,Java在很多领域取代了C和C++,成为企业服务端应用开发的首选语言。在JDK 1.4推出Java NIO之前,基于Java的所有Socket通信都采用了同步阻塞模式(BIO),这种一请求一应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈当并发访问量增大、响应时间延迟增大之后,采用Java BIO开发的服务端软件只有通过硬件的不断扩容来满足高并发和低时延,它极大地增加了企业的成本,并且随着集群规模的不断膨胀,系统的可维护性也面临巨大的挑战,只能通过采购性能更高的硬件服务器来解决问题,这会导致恶性循环。显然BIO无法满足高性能、高并发接入的场景。同步阻塞是一请求一连接,socket服务端有个Acceptor来处理所有的请求,然后分发给一个对应的线程去处理,当请求并发量高的时候,就会出现阻塞,后面会出现大量的连接请求超时,导致客户端以为服务已经挂掉。后面的伪异步I/O只是在此基础上将线程的创建交给线程池来完成罢了,虽做了一点优化,仍然还是面对同样的阻塞问题。
三、使用NIO编程的优点有什么?
(1)客户端发起的连接操作是异步的,可以通过在多路复用器Selector注册OP_CONNECT等待后续结果,不需要像之前的客户端那样被同步阻塞。(2)SocketChannel的读写操作都是异步的,如果没有可读写的数据它不会同步等待,直接返回,这样I/O通信线程就可以处理其他的链路,不需要同步等待这个链路可用。
(3)线程模型的优化:一个Selector线程可以同时处理成千上万个客户端连接,而且性能不会随着客户端的增加而线性下降,因此,它非常适合做高性能、高负载的网络服务器。
四、应用场景有哪些?
在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它已经完全能够满足不同行业的商业应用了。
五、为什么用Nettty?
使用jdk提供的NIO API开发异步通信十分复杂,Netty是一个通信框架,有着简单的API,开发容易上手。
0 0
- netty基础概念
- netty之基础概念
- netty的基础概念二
- Netty(一):基础概念及消息处理流程
- Netty基础
- 03 Netty核心概念
- Netty核心概念
- Netty/NIO 概念
- Netty(一)核心概念
- Netty概念入门
- 深入浅出Netty之一概念模型
- 第三篇:Netty核心概念
- 【Netty基础】protobuf详解
- 【Netty基础】Netty的“零拷贝”
- Netty In Action中文版 - 第三章:Netty核心概念
- Netty In Action中文版 - 第三章:Netty核心概念
- netty in action第三章-netty的核心概念
- Netty in Action (一) netty概念和架构
- 自适应屏幕的后台系统?
- 2016年的总结
- Ajax+SpingMVC总结
- WEB标准的概念及组成
- DDos/DoS工具集(持续更新)
- netty基础概念
- hbase常见的java类与数据模型(备忘)
- MySQL5.7.17压缩版配置安装
- SpringMVC Ajax response中文返回乱码问题的解决方法
- iOS Crash崩溃 排名
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 浅谈Linux系统运维工程师必备技能
- ScrollView感悟
- acpi_gbl_table_handler