摘要: 一、Java I/O 演进之路 1.1 Old I/O Java1.4之前的早期版本,Java对I/O的支持并不完善,在开发高性能的I/O程序的时候,会面临一些巨大的挑战和困难,主要问题如下: 没有数据缓冲区,I/O性能存在问题 数据缓冲区:Buffer, 如:ByteBuffer、CharBuff 阅读全文
posted @ 2018-09-10 01:08 17退而结网 阅读(641) 评论(0) 推荐(0) 编辑
摘要: MySQL逻辑架构 MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。 MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存 阅读全文
posted @ 2018-09-10 00:56 17退而结网 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1.netty如何处理以下问题: 客户端断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常码流处理 epoll bug:导致Selector空轮询,最终导致CPU 100% Netty的优点: API使用简单,开发门槛低 功能强大,预置了多种编解码功能,支持多种主流协议 定制能力强,可以通过Ch 阅读全文
posted @ 2018-09-10 00:51 17退而结网 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 关键代码见:// *** 写半包判断处理 start ***​ 与 // *** 写半包判断处理 end ***​ 之间标注的内容 循环遍历发送缓冲区,对消息的发送结果进行判断,下面具体展开进行说明: 从ChannelOutboundBuffer弹出第一条发送的ByteBuf,然后获取该ByteBu 阅读全文
posted @ 2018-09-10 00:49 17退而结网 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 内存池采用了slab分配思路,内存被划分成多种不同大小的内存单元,在分配内存时根据使用者请求的内存大小进行计算,匹配最接近的内存单元。在计算时分下面几种情况: 请求的内存大小是否超过了chunkSize,如果已超出说明一个该内存已经超出了一个chunk能分配的范围,这种内存内存池无法分配应由JVM分 阅读全文
posted @ 2018-09-10 00:48 17退而结网 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 1.NioServerSocketChannel DefaultServerSocketChannelConfig#setOption @Override public <T> boolean setOption(ChannelOption<T> option, T value) { validat 阅读全文
posted @ 2018-09-10 00:46 17退而结网 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 待补充 1.入站、出站事件handler调用顺序 2.入站、出站事件的范围 阅读全文
posted @ 2018-09-10 00:45 17退而结网 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1.请求创建Connection 2.创建Connection 3.发送请求 4.接收响应 阅读全文
posted @ 2018-09-10 00:26 17退而结网 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 待补充: Deployment Architecture 阅读全文
posted @ 2018-09-10 00:24 17退而结网 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 3.1 Jetty POJO配置 Jetty核心组件都是Plain Old Java Objects (POJOs) 。配置Jetty的过程大多是实例化、组装、配置Jetty POJO属性。可以通过: 编写Java代码完成Jetty对象的实例化、组装,即:Embedding Jetty 使用Jett 阅读全文
posted @ 2018-09-10 00:24 17退而结网 阅读(456) 评论(0) 推荐(0) 编辑