raftx

package
v1.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

raftx is a utility package for easy to use raft library.

Index

Constants

View Source
const (
	RAFT_DATA_DIR = "data"

	Logs_File = "logs.dat"

	Stable_File = "stable.dat"

	LOCAL_HOST = "localhost"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Node

type Node struct {
	Id   string // 节点id
	Addr string // 节点地址
}

Node 实例节点信息

type RaftX

type RaftX struct {
	// contains filtered or unexported fields
}

RaftX 实例

func NewRaftX

func NewRaftX(node *Node, raftBootstrap bool, fsm raft.FSM) (*RaftX, error)

NewRaftX 函数用于创建一个新的RaftX实例。

参数: node: 指向Node类型的指针,表示节点对象。 raftBootstrap: bool类型,表示是否开启Raft的引导模式。 fsm: raft.FSM类型,表示状态机对象。

返回值: *RaftX: 指向RaftX类型的指针,表示创建的RaftX实例。 error: 表示在创建RaftX实例时可能出现的错误。

func NewRaftXWithConfig

func NewRaftXWithConfig(c *raft.Config, node *Node, raftBootstrap bool, fsm raft.FSM) (*RaftX, error)

NewRaftXWithConfig 根据提供的 Raft 配置、节点信息、是否引导 Raft 集群和有限状态机(FSM)创建一个新的 RaftX 实例

参数: c *raft.Config - Raft 配置信息 node *Node - 节点信息 raftBootstrap bool - 是否引导 Raft 集群. 如果已存在 Raft 集群配置目录,则不会生效该设置,使用配置目录中的设置 fsm raft.FSM - raft.FSM 接口实现,支持BatchFSM接口

返回值: *RaftX - 创建的 RaftX 实例 error - 如果创建过程中出现错误,则返回错误信息

func (*RaftX) AddPeer

func (r *RaftX) AddPeer(node *Node) error

func (*RaftX) AddPeers

func (r *RaftX) AddPeers(nodes ...*Node) error

func (*RaftX) EnableRaftAdmin

func (r *RaftX) EnableRaftAdmin()

func (*RaftX) EnableRefelctionService

func (r *RaftX) EnableRefelctionService()

func (*RaftX) GetAddress

func (r *RaftX) GetAddress() string

getAddress 返回 RaftX 实例绑定的地址信息 返回一个格式为 "host:port" 的字符串

func (*RaftX) SetDataDir

func (r *RaftX) SetDataDir(dir string) error

func (*RaftX) SetHealthService

func (r *RaftX) SetHealthService(name string) error

func (*RaftX) Start

func (r *RaftX) Start(s *grpc.Server, fn func(*raft.Raft)) error

Start 启动 RaftX 实例,并返回一个 raft.Raft 实例

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL