摘要: redis 动态字符串 概述 Sda(Simple Dynamic String) 简单动态字符串是 redis中用来表示字符串的结构,而不是传统 C 字符串。 主要的特点就是Sda要做到高效和 二进制安全的, Sda 在Redis中的主要作用有以下两个 : 实现字符串对象 在 Redis 程序中内 阅读全文
posted @ 2019-10-08 17:05 float123 阅读(330) 评论(0) 推荐(0)
摘要: 概述 所有broker在启动的时候都会向NameServer进行注册,对它进行发送心跳包。 源码阅读 路由注册 上面的字段在可以通过下面两张图来理解 registerBrokerAll 方法 brokerOuterAPI 的 registerBrokerAll 方法 其中 RemotingClien 阅读全文
posted @ 2019-10-08 15:28 float123 阅读(530) 评论(0) 推荐(0)
摘要: 问题 : compositeByteBuf 是干什么和其他 compositeByteBuf 有何区别 内部实现 概述 compositeByteBuf 就像数据库中的视图,把几个表的字段组合在一起,它的应用场景比如一个自定义协议有消息头和消息体,而两者是分开到两个 ByteBuf 的,那么这时候要 阅读全文
posted @ 2019-10-08 13:23 float123 阅读(263) 评论(0) 推荐(0)
摘要: 消息队列概述 队列的本质 一次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 阅读(191) 评论(0) 推荐(0)
摘要: 问题 :netty的 ByteBuff 和传统的ByteBuff的区别是什么?HeapByteBuf 和 DirectByteBuf 的区别 ?HeapByteBuf : 使用堆内存,缺点 ,socket 传输的时候由于需要复制的原因,慢一点DirectByteBuf : 堆外内存,可以使用零拷贝概述netty ByteBuf 存在两个指针,分成三个区域: 已读区(可丢弃),未读区(未读),可写区... 阅读全文
posted @ 2019-10-08 13:16 float123 阅读(367) 评论(0) 推荐(0)
摘要: 问题channel 是如何处理发送一半中断后继续重发的channel 具体作用是什么概述这一节我们将介绍 Channel 和内部接口 Unsafe .其中Unsafe 是内部接口,聚合在Channel 中协助网络读写操作相关的操作,设计初衷就是 Channel 的内部辅助类,不应该被用户使用。 继承类分析继承关系链 : AbstractChannel -> AbstractNioChannel -... 阅读全文
posted @ 2019-10-08 13:14 float123 阅读(399) 评论(0) 推荐(0)