首页
学习
活动
专区
工具
TVP
发布

JavaEdge

关注公众号:JavaEdge,加入全国最大的后端交流群。
专栏成员
2499
文章
2706078
阅读量
182
订阅数
Kafka是如何应用NIO实现网络通信的?
Acceptor和Processor之间缓存SocketChannel newConnections队列,保证线程安全顺序。
JavaEdge
2022-11-30
3290
Java8的NIO新文件I/O到底有多好用?
打开并读取文件对于大多数编程语言来是非常常用的,由于 I/O 糟糕的设计以至于很少有人能够在不依赖其他参考代码的情况下完成打开文件的操作。
JavaEdge
2022-11-30
4752
Java NIO为何导致堆外内存OOM了?
某天报警:某台机器部署的一个服务突然无法访问。谨记第一反应登录机器查看日志,因为服务挂掉,很可能因OOM。这个时候在机器的日志中发现了如下的一些信息:
JavaEdge
2022-02-02
1.6K0
Tomcat性能调优
由于Web应用程序跑在Tomcat工作线程,因此Web应用对请求的处理时间也直接影响Tomcat性能,而Tomcat和Web应用在运行过程中所用到的资源都来自os,因此调优需要将服务端看作是一个整体来考虑。
JavaEdge
2021-12-07
8520
Nio2Endpoint组件:Tomcat如何实现异步I/O?
一个是同步一个是异步。而异步最大特点是,应用程序无需自己触发数据从内核空间到用户空间的拷贝。
JavaEdge
2021-12-07
5880
关注专栏作者,随时接收最新技术干货
JavaEdge
华为软件开发工程师
SpringBoot应用启动内置Tomcat的过程分析
springboot默认会在8080端口提供 HTTP 服务,所以这里是一个处理HTTP协议请求的 Http11NioProtocol 实例,使用 NIO 方式处理 HTTP 协议。 Connector 对HTTP请求的接收和处理并非亲自完成,而是委托该 Http11NioProtocol protocolHandler 完成
JavaEdge
2021-12-07
2500
我的生物系学妹也能听懂的Java NIO中Write事件
如果有channel在Selector上注册了SelectionKey.OP_WRITE,在调用selector.select();时,系统会检查内核写缓冲区是否可写:
JavaEdge
2021-12-07
2780
2021最新版BAT大厂Netty面试题集(有详尽答案)
一个高性能、异步事件驱动的 NIO 框架,它提供了对 TCP、UDP 和文件传输的支持 使用更高效的 socket 底层,对 epoll 空轮询引起的 cpu 占用飙升在内部进行了处理,避免 了直接使用 NIO 的陷阱,简化了 NIO 的处理方式。 采用多种 decoder/encoder 支持,对 TCP 粘包/分包进行自动化处理 可使用接受/处理线程池,提高连接效率,对重连、心跳检测的简单支持 可配置IO线程数、TCP参数, TCP接收和发送缓冲区使用直接内存代替堆内存,通过内存 池的方式循环利用 ByteBuf 通过引用计数器及时申请释放不再引用的对象,降低了 GC 频率 使用单线程串行化的方式,高效的 Reactor 线程模型 大量使用了 volitale、使用了 CAS 和原子类、线程安全类的使用、读写锁的使用
JavaEdge
2021-12-07
6100
阿里P8大佬通宵整理!解锁Java NIO的ByteBuffer全部使用姿势!
NIO中的Buffer用于和NIO Channel交互。 数据是从Channel读入Buffer,从Buffer写入Channel。
JavaEdge
2021-12-07
3280
总结了才知道,原来Java NIO的channel是这么用的!
Channel(实现接口java.nio.channels.Channel的类)旨在提供往返NIO缓冲区的批量数据传输。这是与比较高级的I/O库(包java.io和java.net)的类并行存在的底层数据传输机制。可以从高级的数据传输类(例如java.io.File,java.net.ServerSocket或java.net.Socket)获得Channel实现,反之亦然。 Channel类似于在类似Unix的“文件描述符”。
JavaEdge
2021-12-07
2840
Nio2Endpoint组件:Tomcat如何实现异步I/O?
一个是同步一个是异步。而异步最大特点是,应用程序无需自己触发数据从内核空间到用户空间的拷贝。
JavaEdge
2021-10-18
3040
SpringBoot应用启动内置Tomcat的过程分析
springboot默认会在8080端口提供 HTTP 服务,所以这里是一个处理HTTP协议请求的 Http11NioProtocol 实例,使用 NIO 方式处理 HTTP 协议。 Connector 对HTTP请求的接收和处理并非亲自完成,而是委托该 Http11NioProtocol protocolHandler 完成
JavaEdge
2021-10-18
3030
我的生物系学妹也能听懂的Java NIO中Write事件
如果有channel在Selector上注册了SelectionKey.OP_WRITE,在调用selector.select();时,系统会检查内核写缓冲区是否可写:
JavaEdge
2021-10-18
2710
2021最新版BAT大厂Netty面试题集(有详尽答案)
一个高性能、异步事件驱动的 NIO 框架,它提供了对 TCP、UDP 和文件传输的支持 使用更高效的 socket 底层,对 epoll 空轮询引起的 cpu 占用飙升在内部进行了处理,避免 了直接使用 NIO 的陷阱,简化了 NIO 的处理方式。 采用多种 decoder/encoder 支持,对 TCP 粘包/分包进行自动化处理 可使用接受/处理线程池,提高连接效率,对重连、心跳检测的简单支持 可配置IO线程数、TCP参数, TCP接收和发送缓冲区使用直接内存代替堆内存,通过内存 池的方式循环利用 ByteBuf 通过引用计数器及时申请释放不再引用的对象,降低了 GC 频率 使用单线程串行化的方式,高效的 Reactor 线程模型 大量使用了 volitale、使用了 CAS 和原子类、线程安全类的使用、读写锁的使用
JavaEdge
2021-10-18
8850
总结了才知道,原来Java NIO的channel是这么用的!
Channel(实现接口java.nio.channels.Channel的类)旨在提供往返NIO缓冲区的批量数据传输。这是与比较高级的I/O库(包java.io和java.net)的类并行存在的底层数据传输机制。可以从高级的数据传输类(例如java.io.File,java.net.ServerSocket或java.net.Socket)获得Channel实现,反之亦然。 Channel类似于在类似Unix的“文件描述符”。
JavaEdge
2021-10-18
7240
一文搞定Netty接收数据的原理
连续读。 排队打水时,假设当前桶装满了,这时你会觉得可能还要打点水才够用,所以直接拿个新桶等装,而非回家,直到后面出现
JavaEdge
2021-02-23
4250
Netty支持哪些I/O模式?
连接数高的情况下:阻塞 -> 耗资源、效率低。 阻塞意味着等待,等待就会一直占用该线程,当连接数高时,大多线程又在等待,就会耗尽系统的线程资源。
JavaEdge
2021-02-23
5490
Netty支持的三种I/O模式
连接数高的情况下:阻塞 -> 耗资源、效率低。 阻塞意味着等待,等待就会一直占用该线程,当连接数高时,大多线程又在等待,就会耗尽系统的线程资源。
JavaEdge
2021-02-23
6560
给大忙人看的Java NIO网络编程教程-ByteBuf
Java NIO中的Buffer用于和NIO Channel交互。数据是从通道读入缓冲区,从缓冲区写入到通道中。
JavaEdge
2021-02-23
3590
Unix的I/O模型解析
IO 是主存和外部设备 ( 硬盘、各种移动终端及网络等 ) 拷贝数据的过程。IO 是操作系统的底层功能,通过 I/O 指令完成。网络编程领域的IO专指网络IO。
JavaEdge
2021-02-23
4900
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档