Thanks to visit codestin.com
Credit goes to github.com

Skip to content

langyalian/raft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raft 主要实现目标是在集群中选出一个领导者

系统一共有三个角色 :

		1 追随者(follower)
		2 候选人(candidate)
		3 领导者 (leader)

角色转换:

	1 追随者可以转换为候选人
	2 候选人可以转换为追随者和领导人
	3 领导人可以转换为追随者

接口使用说明: raft模块提供了4个接口: ```

	1 start_working/0
	2 add_handler/2
	3 delete_handler/1
    	4 role/0 
```

下面对每个接口进行描述:

1 start_working/0
在使用raft应用时必须调用一次 start_working/0,否则不会进行正常工作。

2 add_handler/2
 该函数实现事件注册功能,在节点角色发生转变时会调用该函数。
 参数一:事件处理器标识
 参数二:fun/1, 函数中的参数为事件类型 'become_leader'|'become_follower'

3 delete_handler/1
  该函数实现取消注册的事件处理函数
  参数一:add_handler/2函数中传递的事件处理器标识

 4 role/0 
 	该函数可以用来查看当前节点角色类型 'follower'|'candidate'|'leader'

测试用例:

编译命令:

$ ./rebar3 compile

测试方法:

bin/start-master-node 节点名称

bin/start-slave-node  节点名称  主节点名称

例子:

bin/start-master-node     node1

    bin/start-slave-node	node2    	node1

   	bin/start-slave-node	node3    	node1

About

集群中选择leader

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages