上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页
摘要: 消息队列概述 队列的本质 一次RPC变成两次 RPC 内容转储 选择合适的时机投递 队列设计重点 RPC 通信协议 存储选型 消费关系处理 实现事务 防丢/防重 批量/异步与性能 强烈推荐这篇文章,从设计的角度来思考消息队列的各种问题,阅读源码只是理解设计的最终实现,只有知道了设计的思路阅读源码才会 阅读全文
posted @ 2019-10-08 13:21 float123 阅读(354) 评论(0) 推荐(0)
摘要: 概述文章主要介绍的是PoolArena,PoolChunk,PoolSubpage 三个类的源码PoolArenaPoolArena 是netty 的内存池实现类,通过预先申请一块大的空间,然后对空间进行分配和回收,这样就不用频繁进行系统调用,提高性能。PoolArena 由多个 chunk 组成,chunk 则由多个page 组成.PoolChunkChunk 主要用来组织和管理多个Page的内... 阅读全文
posted @ 2019-10-08 13:20 float123 阅读(190) 评论(0) 推荐(0)
摘要: 问题 :netty的 ByteBuff 和传统的ByteBuff的区别是什么?HeapByteBuf 和 DirectByteBuf 的区别 ?HeapByteBuf : 使用堆内存,缺点 ,socket 传输的时候由于需要复制的原因,慢一点DirectByteBuf : 堆外内存,可以使用零拷贝概述netty ByteBuf 存在两个指针,分成三个区域: 已读区(可丢弃),未读区(未读),可写区... 阅读全文
posted @ 2019-10-08 13:16 float123 阅读(365) 评论(0) 推荐(0)
摘要: 问题channel 是如何处理发送一半中断后继续重发的channel 具体作用是什么概述这一节我们将介绍 Channel 和内部接口 Unsafe .其中Unsafe 是内部接口,聚合在Channel 中协助网络读写操作相关的操作,设计初衷就是 Channel 的内部辅助类,不应该被用户使用。 继承类分析继承关系链 : AbstractChannel -> AbstractNioChannel -... 阅读全文
posted @ 2019-10-08 13:14 float123 阅读(398) 评论(0) 推荐(0)
摘要: 问题 : NioEventLoop 作用到底是什么?是在哪里用到的? NioEventLoop 和我们开头创建的 ServerBootstrap 和 EventLoopGroup 是什么关系 ? NioEventLoop 和 NioChannel 怎么传递的(按合理,一个channel应该分配一个N 阅读全文
posted @ 2019-09-30 16:33 float123 阅读(323) 评论(0) 推荐(0)
摘要: 概述 先了解一下 netty 大概框架图 ,可以看到客户端的创建和服务端最大的区别 - 服务端传入两个 EventLoopGroup,客户端传入一个 EventLoopGroup - channel 的类型也不同,服务端传入的是 NioServerSocketChannel ,客户端传入的是 Nio 阅读全文
posted @ 2019-09-30 16:29 float123 阅读(747) 评论(0) 推荐(0)
摘要: NIO Select 知识 select 示例代码 : 源码阅读 通过上一篇文章我们知道了,netty 实际是由两个 Reactor 组成,前者维护一个 Acceptor 绑定接口,处理客户端的连接,然后再将读写,解码编码工作交给另外一个 Reactor ,我们先来看一下这样一个过程,明白总体的过程 阅读全文
posted @ 2019-09-30 16:23 float123 阅读(245) 评论(0) 推荐(0)
摘要: 问题 : DirectBuffer DirectByteBuffer 自身是一个Java对象,在Java堆中;而这个对象中有个long类型字段address,记录着一块调用 malloc() 申请到的native memory。DirectByteBuffer 自身是(Java)堆内的,它背后真正承 阅读全文
posted @ 2019-09-30 16:21 float123 阅读(1052) 评论(0) 推荐(0)
摘要: 问题 : 零拷贝解决的是什么问题 零拷贝的本质是什么 文章部分知识来自参考链接中朱大的文章,半原创 概述   假如有以下场景:你需要发送一张图片给某个朋友,那么选择好图片后(read),建立连接发送。(write)   这个过程可以见下图  &ems 阅读全文
posted @ 2019-09-30 10:44 float123 阅读(276) 评论(0) 推荐(0)
摘要: 问题 为什么需要虚拟内存 如何实现 虚拟内存的动机 早期程序员自己写程序还要自己管理内存地址(内存条上的地址),要自己知道分配到内存条的哪个地方, 为了解决这个问题,早期的分页管理就出现了,程序员只要知道逻辑地址就可以,然后真实的物理地址不需要管,由分页管理。 举例 : 当时有一种计算机,其指令中给 阅读全文
posted @ 2019-09-30 10:43 float123 阅读(1531) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页