09 2019 档案

摘要:问题 : NioEventLoop 作用到底是什么?是在哪里用到的? NioEventLoop 和我们开头创建的 ServerBootstrap 和 EventLoopGroup 是什么关系 ? NioEventLoop 和 NioChannel 怎么传递的(按合理,一个channel应该分配一个N 阅读全文
posted @ 2019-09-30 16:33 float123 阅读(308) 评论(0) 推荐(0) 编辑
摘要:概述 先了解一下 netty 大概框架图 ,可以看到客户端的创建和服务端最大的区别 - 服务端传入两个 EventLoopGroup,客户端传入一个 EventLoopGroup - channel 的类型也不同,服务端传入的是 NioServerSocketChannel ,客户端传入的是 Nio 阅读全文
posted @ 2019-09-30 16:29 float123 阅读(729) 评论(0) 推荐(0) 编辑
摘要:NIO Select 知识 select 示例代码 : 源码阅读 通过上一篇文章我们知道了,netty 实际是由两个 Reactor 组成,前者维护一个 Acceptor 绑定接口,处理客户端的连接,然后再将读写,解码编码工作交给另外一个 Reactor ,我们先来看一下这样一个过程,明白总体的过程 阅读全文
posted @ 2019-09-30 16:23 float123 阅读(242) 评论(0) 推荐(0) 编辑
摘要:问题 : DirectBuffer DirectByteBuffer 自身是一个Java对象,在Java堆中;而这个对象中有个long类型字段address,记录着一块调用 malloc() 申请到的native memory。DirectByteBuffer 自身是(Java)堆内的,它背后真正承 阅读全文
posted @ 2019-09-30 16:21 float123 阅读(1016) 评论(0) 推荐(0) 编辑
摘要:问题 : 零拷贝解决的是什么问题 零拷贝的本质是什么 文章部分知识来自参考链接中朱大的文章,半原创 概述   假如有以下场景:你需要发送一张图片给某个朋友,那么选择好图片后(read),建立连接发送。(write)   这个过程可以见下图  &ems 阅读全文
posted @ 2019-09-30 10:44 float123 阅读(268) 评论(0) 推荐(0) 编辑
摘要:问题 为什么需要虚拟内存 如何实现 虚拟内存的动机 早期程序员自己写程序还要自己管理内存地址(内存条上的地址),要自己知道分配到内存条的哪个地方, 为了解决这个问题,早期的分页管理就出现了,程序员只要知道逻辑地址就可以,然后真实的物理地址不需要管,由分页管理。 举例 : 当时有一种计算机,其指令中给 阅读全文
posted @ 2019-09-30 10:43 float123 阅读(1510) 评论(0) 推荐(0) 编辑
摘要:问题 session 如何生成的?sessionId为什么不直接使用时间戳+单机名 sessionid 关闭的时候的逻辑,sessionid 的维护是由各节点还是leader ? 会话相关 sessionid 生成   我们看一下session 管理类 SessionTracke 阅读全文
posted @ 2019-09-04 22:44 float123 阅读(615) 评论(0) 推荐(0) 编辑
摘要:前言 在开始阅读代码前我们先来了解一下zk 的大致结构,具体大概要实现的核心功能有那些,心中有个大概的框架阅读代码时再深入其中的细节,就会非常好懂,本人觉得这是一个阅读源码的好方法,可以最快地切入到源码中,先知大体,后知细节。 我们先不考虑权限控制的问题,zk底层使用 zab ,是一种分布式一致性协议,服务的对象是客户端,需要做持久化,根据这些我们可以大致做出以下功能视图。 更... 阅读全文
posted @ 2019-09-02 22:50 float123 阅读(1030) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示