
网络编程
文章平均质量分 96
余冰涛
北邮网络空间安全专业17级硕士,在实验室的主要研究方向是调度平台的应用与开发,涉及部分分布式内容以及后台开发内容。
展开
-
netty 源码分析(一)- 启动
0 预备工作前往github下载源码,版本为4.1,地址:https://github.com/netty/netty1 正式分析1.1 官方的启动example代码服务端的启动代码为EchoServer,具体路径为io.netty.example.echo.EchoServer。本文分析的也就是这个类,具体代码如下:public final class EchoServer { static final boolean SSL = System.getProperty("ssl")原创 2021-05-12 10:54:26 · 355 阅读 · 1 评论 -
BIO-select-epoll个人总结 + redis线程模型
先讲一下最简单的情况:BIO+单client。先是server启动服务并监听,然后client连接server,此时创建一个线程,并在内核生成文件描述符fd6,同时线程会调用recvfrom等待消息,如下图所示:然后,client1发送数据,数据最终会到fd6上。此时线程就能读取到对应的数据,对数据进行处理后将结果返回给client1。客户端当然不会只有一个,因此需要建立多个线程来进行处理。BIO+多client。如下图所示:当有三个客户端连接服务器,就需要有三个线程来分别对三个文件描述符(原创 2020-12-18 11:21:25 · 321 阅读 · 0 评论 -
rocketmq 源码阅读笔记
nameserv路由管理:RouteInfoManagerpickupTopicRouteData():根据topic取得对应的所有队列list < QueueData>将每个队列QueueData的brokerName存到Set<String> brokerNameSet中遍历 brokerNameSet,从brokerAddrTable中取出brokerNa......原创 2019-12-04 20:08:48 · 1855 阅读 · 1 评论 -
BIO NIO
NIO和BIOIO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIOBIO和NIO的区别:面向流与面向缓冲IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节。而NIO则可以将数据先放入缓存区,稍后再读取想要的部分。(但其缺陷在于Thread需要反复检查buffer中是否包含所有想要处理的数据)阻塞与非...转载 2019-05-23 15:02:37 · 264 阅读 · 0 评论 -
网络编程-汇总
先读《高性能网络编程(五):一文读懂高性能网络编程中的I/O模型》其中BIO、NIO部分可阅读《https://blog.youkuaiyun.com/bintoYu/article/details/90480649》进行补充然后再读《高性能网络编程(六):一文读懂高性能网络编程中的线程模型》...原创 2019-11-19 16:10:00 · 428 阅读 · 0 评论