netty
文章平均质量分 76
大道至简@EveryDay
生活不止眼前的苟且,还有诗和远方的田野
展开
-
Netty实战《RPC调用》
1)设计优雅 2)使用方便 3)高性能,吞吐量高,延迟低,减少资源损耗,减少不必要的内存复制 4)安全,完整的ssl/tls 和start TLS支持 5)社区活跃原创 2022-04-16 23:51:55 · 2293 阅读 · 0 评论 -
Netty实战《原理》
Netty介绍官网说明官网说明 1)netty是由JBOSS提供的一个java开源框架。Netty提供异步的,基于事件驱动的网络应用程序框架,用于快速开发高性能,高可靠的网络IO程序 2)netty可以帮助你快速,简单的开发一个网络应用,相当于简化和流程化NIO的开发流程 3)netty目前最流行的NIO框架,在互联网,大数据分布式计算领域,游戏行业,通信行业等有广泛的应用,知名的Es,Dubbo等框架内部都采用netty c官网说明...原创 2022-04-16 20:53:44 · 1029 阅读 · 1 评论 -
传统IO,Reactor ,Proactor 线程服务模型
传统阻塞I/O服务模型工作原理图模型特点1) 采用阻塞IO模式获取数据2) 每个连接都需要独立的线程完成数据输入,业务处理,数据返回问题分析1) 当并发数很大,就会创建大量的线程,占用很大的系统资源2) 连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在read操作,造成资源的浪费针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案:1)基于 I/O 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系原创 2022-04-16 20:22:05 · 1108 阅读 · 0 评论 -
NIO和Epoll Bug
最上面的while(true)循环,循环往复,不断的轮询,直到linux系统出现100%的CPU情况,其它执行任务干不了活,最终导致程序崩溃。原因:具体解释为,在部分Linux的2.6的kernel中,poll和epoll对于突然中断的连接socket会对返回的eventSet事件集合置为POLLHUP,也可能是POLLERR,eventSet事件集合发生了变化,这就可能导致Selector会被唤醒。==》这是与操作系统机制有关系的修复:1)将SelectKey去除掉,然后“刷新”一下Select.原创 2022-04-16 11:29:59 · 788 阅读 · 0 评论 -
NIO与零拷贝
NIO与零拷贝零拷贝基本介绍零拷贝技术实现mmapsendFile优化1sendFile优化2零拷贝基本介绍零拷贝就是一种避免 CPU 将数据从一块存储拷贝到另外一块存储的技术。我们说的零拷贝 是从操作系统来看 因为内核缓冲区之间,没有数据是重复的(只有kernel buffer有一份数据)1)零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率。2)零拷贝技术减少了用户应用程序地址空间和操作系统内核地址空间之间因为上下文切换而带原创 2022-04-16 11:16:30 · 349 阅读 · 0 评论 -
NIO原理及实战
基本介绍细节描述BIO和NIO比较缓冲区通道细节描述1)Java NIO全称java non-blocking IO ,是指JDK提供的新的API,从JDK1.4开始,Java提供了一系列改进输入/输出的新特性,被统称为NIO,同步非阻塞2)NIO相关的类都放在java.nio包及子包下,并且对原java.io包中很多类进行改写3)NIO有三大核心部分: Channel(通道),Buffer(缓冲区),Selector(选择器)4)NIO是面向缓冲区,或者面向块编程。数据读取到一个它稍后处理的缓原创 2022-04-14 22:42:31 · 1492 阅读 · 0 评论 -
BIO简介
1,BIO基本介绍1)Java BIO 就是传统的java io 编程,其相关的类和接口在 java.io2)BIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)。 【后有应用实例】3)BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,程序简单易理解原创 2020-05-26 16:42:34 · 1397 阅读 · 0 评论