Redis Data Structure
Redis Data Structure string list hash set zset (sorted set) bitmap string sds (simple dynamic string) 源码 typedef char *sds; // flag 表示使用的类型, x可选值为8,16,32,64, 依次节省空间 struct __at...
Redis Data Structure string list hash set zset (sorted set) bitmap string sds (simple dynamic string) 源码 typedef char *sds; // flag 表示使用的类型, x可选值为8,16,32,64, 依次节省空间 struct __at...
Zookeeper 使用zab共识算法 树形znode 写操作线性有序 FIFO client order ZAB 使用ZAB算法而不是raft 但同样选举leader, 保持状态机, 先写log, 半数以上节点写log完成后才commit log high perfermance zookeeper具有很高的读性能 read ...
Go GC stack上的空间会随着pop而自动回收(未发生内存逃逸的元素) heap上的空间由GC自动回收 标记清扫法 三色标记法 + 写屏障技术 三色标记法 黑色 查询结束, 有用 灰色 有用但查询尚未结束 白色 无用, 可以删除 ...
Zero Copy Linux IO方式 轮询 IO中断 DMA方式 传统IO使用read()和write()系统调用 后续以上传文件为例, 从用户态使用read从磁盘读取数据, 使用write将数据写入网卡 IO中断 read 从磁盘读取数据时CPU阻塞 DMA方式 2次DMA copy + 2次CP...
Kafka 消费模式 点对点 发布订阅 架构 Producer Consumer Consumer Group Broker 一个kafka节点就是一个Broker, 一个Cluster由多个Broker组成 Topic Partition 一个Topic可...
Raft Raft is a consensus algorithm etcd中的一致性算法使用了raft 算法流程 leader selection 一个节点处于下列三种状态之一 leader client与leader进行交互, 并且同一时间只能有一个leader ca...
ETCD 高可用分布式kv数据库, 常用于服务发现 使用raft算法保持一致性, go语言实现 CAP理论中实现了CP CAP理论: CAP是不可能三角 对于一个分布式系统来说, P必须实现 C 数据一致性 A 可用性 P 分区容忍性 etcd架构 Store ...
RPC Framework Project 项目地址 github Introduction what`s rpc 远程过程调用, 可以基于HTTP、TCP等 与之相比较的是RESTful api(基于HTTP), 如今二者的区别越来越小 rpc更灵活, 性能更好, 更高效; RESTful api可读性更好, 兼容性更好 ...
Web Framework Project 项目地址 github Introduction 参考gin框架 体现了框架设计的核心原则 Reason net/http提供了基础的web功能, 但是还缺少了许多简单的功能 Function 上下文Context 动态路由 前缀树 Trie Tree 分组控制 ...
Go Programing Skills 接口型函数 example // net/http 标准库 type Handler interface { ServeHTTP(ResponseWriter, *Request) } type HandlerFunc func(ResponseWriter, *Request) func (f HandlerFunc) ServeHTTP(w...