protectedint#%4
protectedint*58a5
protectednalECM;%R, N newECM;%R, N
protectednalECM;%R, N newECM;%R, N
protectedlong ($
protectedECM;%;%N /%newECM;%;%N
protectedECM;%;%N [newECM;%;%N
protectedint[6
protectedRT!-T!
protectedint@24
protectedint%( 6
protected;;PARTICIPANT
F
比较重要的属性还有 每个 的配置项都是一个 上面的伪分布式模式则有4个
学习者的类型;有5种' **参与者要参与到投票过程' 观察者不会参与到投票过程
解析配置文件就是加载*文件 U配置项有三种形式
常用的配置项是 85aaa4aaa其中和5aaa为 之间的通信$$和4aaa为 之间选举$使用#$$
如果指定了则这个 是一个' 类型或者*类型的学习者' 最终也要加入到 中
每个 配置项对应的类是R, 它包含了$$$#$$和默认学习者类型为*的
publicvoid***D
if$;%)nullD
$;%)$)
F
for0M'"'"N*,D
,%%,%
,% %T,%
if/. .D
int$$+'PP
long$;%parseLong%$X8
,%AB ..
(,#$$$$new(,#$$A6B(%parseIntA8B
if%5D
;%valueOf$newR, $$$
Felseif%4D
(,#$$#$$new(,#$$A6B(%parseIntA5B
;%valueOf$newR, $$$#$$
Felseif%=D
(,#$$#$$new(,#$$A6B(%parseIntA5B
;;PARTICIPANT
ifA4B;2-. .D
;OBSERVER
;%valueOf$newR, $$$#$$
FelseifA4B;2-..D
;PARTICIPANT
;%valueOf$newR, $$$#$$
F
F
F
F
if N8D
# ::1$$ - !%$
<($<new<$).$.
?V$@$new?V$@$new<@$($<
,%($,%
tryD
($,%$; ::读取$)下的$文件内容作为 ($
FnallyD
F
($;%parseLong($,%
C)2put.$.($,%
F
F
3. QuorumPeerMain
:KK2!%!
K/$$%!%$!%!
K$!%!*!$
K $-$: $
K%%$!%!
K$)& $$$存储数据的目录
K$;%)& $%$的事务日志目录默认和$)一样
K*& $客户端和, 通信的端口