Redis Sentinel
Redis Sentinel 主从节点故障切换 主节点挂了, 可以选举一个从节点成为新主节点 哨兵模式优势 主从模式下主从切换需要手动配置 哨兵模式下帮助自动进行故障切换 一般哨兵也会布置多个节点, 通常是奇数个 哨兵模式 监控 选主 通知 监控 向所有主从节点发...
Redis Sentinel 主从节点故障切换 主节点挂了, 可以选举一个从节点成为新主节点 哨兵模式优势 主从模式下主从切换需要手动配置 哨兵模式下帮助自动进行故障切换 一般哨兵也会布置多个节点, 通常是奇数个 哨兵模式 监控 选主 通知 监控 向所有主从节点发...
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 __a...
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 分组控制 ...