原文:1. SOFAJRaft源碼分析— SOFAJRaft啟動時做了什么?

我們這次依然用上次的例子CounterServer來進行講解: 我這里就不貼整個代碼了 我們在啟動server的main方法的時候會傳入日志存儲的路徑 SOFAJRaft集群的名字 當前節點的ip和端口 集群節點的ip和端口並設值到NodeOptions中,作為當前節點啟動的參數。 這里會將當前節點初始化為一個PeerId對象 PeerId PeerId的parse方法會將傳入的ip:端口解析之后 ...

2019-10-10 23:45 0 580 推薦指數:

查看詳情

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

前言 由於RheaKV要講起來篇幅比較長,所以這里分成幾個章節來講,這一章講一講RheaKV初始化做了什么? 我們先來給個例子,我們從例子來講: 這里為了簡化邏輯,使用的無PD設置 Node的實現: 所以這里是初始化一個DefaultRheaKVStore,並調用其init方法 ...

Thu Oct 31 07:50:00 CST 2019 1 400
5. SOFAJRaft源碼分析— RheaKV中如何存放數據?

概述 上一篇講了RheaKV是如何進行初始化的,因為RheaKV主要是用來做KV存儲的,RheaKV讀寫的是相當的復雜,一起寫會篇幅太長,所以這一篇主要來講一下RheaKV中如何存放數據。 我們這里使用一個客戶端的例子來開始本次的講解: 我們從這個main方法中啟動我們的實例,調用 ...

Mon Nov 11 00:16:00 CST 2019 0 310
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
6. SOFAJRaft源碼分析— 透過RheaKV看線性一致性讀

開篇 其實這篇文章我本來想在講完選舉的時候就開始講線性一致性讀的,但是感覺直接講沒頭沒尾的看起來比比較困難,所以就有了RheaKV的系列,這是RheaKV,終於可以講一下SOFAJRaft的線性一致性讀是怎么做到了的。所謂線性一致性,一個簡單的例子是在 T1 的時間寫入一個值,那么在 T1 之后 ...

Mon Nov 18 04:46:00 CST 2019 0 285
2. SOFAJRaft源碼分析—JRaft的定時任務調度器是怎么做的?

看完這個實現之后,感覺還是要多看源碼,多研究。其實JRaft的定時任務調度器是基於Netty的時間輪來做的,如果沒有看過Netty的源碼,很可能並不知道時間輪算法,也就很難想到要去使用這么優秀的定時調度算法了。 對於介紹RepeatedTimer,我拿Node初始化 ...

Sun Oct 20 06:49:00 CST 2019 0 667
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM