1.组成部分 Java内存分为两部分: 堆内存堆内存由GC垃圾回收期进行管理。 非堆内存非堆内存包括:Java方法栈、本地方法栈、元空间Metaspace、直接内存、代码缓存...
1.组成部分 Java内存分为两部分: 堆内存堆内存由GC垃圾回收期进行管理。 非堆内存非堆内存包括:Java方法栈、本地方法栈、元空间Metaspace、直接内存、代码缓存...
1.Linux虚拟内存管理 当程序运行起来之后就变成了进程,业务数据结构的引用在进程的视角里全都都是虚拟内存地址,因为进程无论是在用户态还是在内核态能够看到的都是虚拟内存空间...
1.Leader选举 1.1 预选举 1.2 正式选举 1.3 Leader降级 2.日志复制 2.1 日志生成 2.2 pipeline机制 2.3 发送探针 2.4 日志...
1.为什么引入快照机制? 快照机制本质上也是一种对日志数据复制的优化手段。 两个问题: 1)因为日志数据需要落盘存储,当日志数据量大到磁盘空间无法容纳时,除了扩容是否还有其它...
1.日志复制原理 Raft 中的日志主要可以分为两类: 一类是协议自身运行所生成的日志,例如集群节点配置变更信息; 另外一类就是用户向集群提交的指令所生成的日志。 为了让集群...
1.term 和 logIndex Raft 算法设计了 term 和 logIndex 两个属性,分别用于表示 Leader 节点的任期,以及集群运行期间接收到的指令对应的...
1.RpcServer 添加系统自带的processors。RaftRpcServerFactory#addRaftRequestProcessors() 另外可以注册自定义...
前言 当下开源发展超乎想象,连腾讯,阿里这种大厂都在不断追赶各种开源,享受开源的红利。 开源时代的到来颠覆了传统IT生命周期发展的步伐,自研时代的“重开发”,到开源时代的“重...
1.sync.Mutex 在Go语言的sync包中,sync.Mutex是不可重入的互斥锁。这与Java可重入锁改变不同。 也就是说,当一个goroutine获得了Mutex...