1.Tars-Java网络编程源码分析
Tars-Java网络编程源码分析
Tars框架基本介绍
Tars是外包腾讯开源的高性能RPC框架,支持多种语言,源码包括C++、做外Java、外包PHP、源码Nodejs、做外引力球球源码Go等。外包它提供了一整套解决方案,源码帮助开发者快速构建稳定可靠的做外分布式应用,并实现服务治理。外包
Tars部署服务节点超过一千个,源码经过线上每日一百多亿消息推送量的做外考验。文章将从Java NIO网络编程原理和Tars使用NIO进行网络编程的外包源码原码细节两方面进行深入探讨。
Java NIO原理介绍
Java NIO提供了新的源码IO处理方式,它是做外面向缓冲区而不是字节流,且是非阻塞的,支持IO多路复用。
Channel类型包括SocketChannel和ServerSocketChannel。ServerSocketChannel接受新连接,bsb 源码accept()方法会返回新连接的SocketChannel。Buffer类型用于数据读写,分配、读写、操作等。
Selector用于监听多个通道的prydown源码事件,单个线程可以监听多个数据通道。
Tars NIO网络编程
Tars采用多reactor多线程模型,核心类之间的关系明确。Java NIO服务端开发流程包括创建ServerSocketChannel、Selector、注册事件、libdatrie 源码循环处理IO事件等。
Tars客户端发起请求流程包括创建通信器、工厂方法创建代理、初始化ServantClient、获取SelectorManager等。
Tars服务端启动步骤包括初始化selectorManager、开启监听的ServerSocketChannel、选择reactor线程处理事件等。
Reactor线程启动流程涉及多路复用器轮询检查事件、处理注册队列、获取已选键集中就绪的channel、更新Session、分发IO事件处理、处理注销队列等。
IO事件分发处理涉及TCP和UDPAccepter处理不同事件,以及session中网络读写的详细处理过程。
总结
文章详细介绍了Java NIO编程原理和Tars-Java 1.7.2版本网络编程模块源码实现。最新的Tars-Java master分支已将网络编程改用Netty,学习NIO原理对掌握网络编程至关重要。
了解更多关于Tars框架的介绍,请访问tarscloud.org。本文源码分析地址在github.com/TarsCloud/Ta...