原文:5. SOFAJRaft源码分析— RheaKV中如何存放数据?

概述 上一篇讲了RheaKV是如何进行初始化的,因为RheaKV主要是用来做KV存储的,RheaKV读写的是相当的复杂,一起写会篇幅太长,所以这一篇主要来讲一下RheaKV中如何存放数据。 我们这里使用一个客户端的例子来开始本次的讲解: 我们从这个main方法中启动我们的实例,调用rheaKVStore.bPut key, value 方法将数据放入到RheaKV中。 Client在调用init方 ...

2019-11-10 16:16 0 310 推荐指数:

查看详情

4. SOFAJRaft源码分析RheaKV初始化做了什么?

前言 由于RheaKV要讲起来篇幅比较长,所以这里分成几个章节来讲,这一章讲一讲RheaKV初始化做了什么? 我们先来给个例子,我们从例子来讲: 这里为了简化逻辑,使用的无PD设置 Node的实现: 所以这里是初始化一个DefaultRheaKVStore,并调用其init方法 ...

Thu Oct 31 07:50:00 CST 2019 1 400
6. SOFAJRaft源码分析— 透过RheaKV看线性一致性读

开篇 其实这篇文章我本来想在讲完选举的时候就开始讲线性一致性读的,但是感觉直接讲没头没尾的看起来比比较困难,所以就有了RheaKV的系列,这是RheaKV,终于可以讲一下SOFAJRaft的线性一致性读是怎么做到了的。所谓线性一致性,一个简单的例子是在 T1 的时间写入一个值,那么在 T1 之后 ...

Mon Nov 18 04:46:00 CST 2019 0 285
1. SOFAJRaft源码分析SOFAJRaft启动时做了什么?

我们这次依然用上次的例子CounterServer来进行讲解: 我这里就不贴整个代码了 我们在启动server的main方法的时候会传入日志存储的路径、SOFAJRaft集群的名字、当前节点的ip和端口、集群节点的ip和端口并设值到NodeOptions,作为当前节点启动的参数 ...

Fri Oct 11 07:45:00 CST 2019 0 580
7. SOFAJRaft源码分析—如何实现一个轻量级的对象池?

前言 我在看SOFAJRaft源码的时候看到了使用了对象池的技术,看了一下感觉要吃透的话还是要新开一篇文章来讲,内容也比较充实,大家也可以学到之后运用到实际的项目中去。 这里我使用RecyclableByteBufferList来作为讲解的例子 ...

Mon Nov 25 06:29:00 CST 2019 0 362
9. SOFAJRaft源码分析— Follower如何通过Snapshot快速追上Leader日志?

前言 引入快照机制主要是为了解决两个问题: JRaft新节点加入后,如何快速追上最新的数据 Raft 节点出现故障重新启动后如何高效恢复到最新的数据 Snapshot 源码分析 生成 Raft 节点的快照文件 如果用户需开启 SOFAJRaft 的 Snapshot 机制 ...

Mon Dec 30 00:23:00 CST 2019 0 728
3. SOFAJRaft源码分析— 是如何进行选举的?

开篇 在上一篇文章当中,我们讲解了NodeImpl在init方法里面会初始化话的动作,选举也是在这个方法里面进行的,这篇文章来从这个方法里详细讲一下选举的过程。 由于我这里介绍的是如何实现的,所以请大家先看一下原理:SOFAJRaft 选举机制剖析 | SOFAJRaft 实现原理 文章比较 ...

Sat Oct 26 23:54:00 CST 2019 1 433
8. SOFAJRaft源码分析— JRaft是如何实现日志复制的?

前言 前几天和腾讯的大佬一起吃饭聊天,说起我对SOFAJRaft的理解,我自然以为我是很懂了的,但是大佬问起了我那SOFAJRaft集群之间的日志是怎么复制的? 我当时哑口无言,说不出是怎么实现的,所以这次来分析一下SOFAJRaft中日志复制是怎么做的。 Leader发送探针获取 ...

Sun Dec 08 23:51:00 CST 2019 0 393
5.源码分析---SOFARPC调用服务

我们这一次来接着上一篇文章《4. 源码分析---SOFARPC服务端暴露》讲一下服务暴露之后被客户端调用之后服务端是怎么返回数据的。 示例我们还是和上篇文章一样使用一样的bolt协议来讲: 在Bolt协议下面,当服务端被调用的时候一个服务的流程如下所示 ...

Mon Aug 05 05:13:00 CST 2019 0 390
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM