raftrpc

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoneID     = errors.New("id must not be none")
	ErrEmptyAddr  = errors.New("addr must not be empty")
	ErrNilHandler = errors.New("handler must not be nil")
)

Functions

func RPCMsg

func RPCMsg(msg rt.Message) rr.Message

func RaftMsg

func RaftMsg(msg rr.Message) rt.Message

Types

type Config

type Config struct {
	// ID must be consistent with raft node id
	ID int64
	// Addr in `host:port` format
	Addr    string
	Handler Handler
	Logger  raft.Logger
}

type Handler

type Handler interface {
	ServeRPC(ctx context.Context, msg rt.Message)
}

type HandlerFunc

type HandlerFunc func(ctx context.Context, message rt.Message)

func (HandlerFunc) ServeRPC

func (f HandlerFunc) ServeRPC(ctx context.Context, msg rt.Message)

type Transport

type Transport struct {
	Config
	// contains filtered or unexported fields
}

func NewTransport

func NewTransport(config Config) *Transport

func (*Transport) AddPeer

func (t *Transport) AddPeer(id int64, addr string)

func (*Transport) Do

func (t *Transport) Do(ctx context.Context, req *rr.Message) (resp *rr.DummyResp, err error)

func (*Transport) Peers

func (t *Transport) Peers() int

func (*Transport) RemovePeer

func (t *Transport) RemovePeer(id int64)

func (*Transport) Send

func (t *Transport) Send(messages []rt.Message)

func (*Transport) Start

func (t *Transport) Start() error

Start will block

func (*Transport) Stop

func (t *Transport) Stop()

type Transporter

type Transporter interface {
	rr.RPC
	Start() error
	Send(messages []rt.Message)
	// AddPeer add addr in `host:port` format
	AddPeer(id int64, addr string)
	RemovePeer(id int64)
	Peers() int
	Stop()
}

Directories

Path Synopsis
kitex_gen
raft/rpc
Code generated by Kitex v0.10.3.
Code generated by Kitex v0.10.3.

Jump to

Keyboard shortcuts

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