Documentation
¶
Index ¶
- Variables
- type AdminServer
- type BinlogServerHandler
- type BinlogSyncerHandler
- func (h *BinlogSyncerHandler) GetBinlogSyncerStatus(echoCtx echo.Context) error
- func (h *BinlogSyncerHandler) ProposeSyncerArgs(args *config.SyncerArgs) error
- func (h *BinlogSyncerHandler) StartBinlogSyncer(echoCtx echo.Context) error
- func (h *BinlogSyncerHandler) StopBinlogSyncer(echoCtx echo.Context) error
- type Cluster
- type MembershipHandler
- func (h *MembershipHandler) AddMember(echoCtx echo.Context) error
- func (h *MembershipHandler) DeleteMember(echoCtx echo.Context) error
- func (h *MembershipHandler) GetCluster(echoCtx echo.Context) error
- func (h *MembershipHandler) GetMembers(echoCtx echo.Context) error
- func (h *MembershipHandler) UpdateAdminURL(echoCtx echo.Context) error
- func (h *MembershipHandler) UpdateMember(echoCtx echo.Context) error
- type Role
- type Server
Constants ¶
This section is empty.
Variables ¶
var ( //ErrNoLeader returns for no leader in raft cluster ErrNoLeader = errors.New("kingbus: no leader") //ErrNotLeader returns for the node is not leader ErrNotLeader = errors.New("kingbus: node is not leader") )
Functions ¶
This section is empty.
Types ¶
type AdminServer ¶
type AdminServer struct {
AdminAddr string
// contains filtered or unexported fields
}
AdminServer is a server for handling api call
func NewAdminServer ¶
func NewAdminServer(addr string, svr Server, cluster Cluster) *AdminServer
NewAdminServer creates a admin server
func (*AdminServer) RegisterMiddleware ¶
func (s *AdminServer) RegisterMiddleware()
RegisterMiddleware implements register middleware in web
func (*AdminServer) RegisterURL ¶
func (s *AdminServer) RegisterURL()
RegisterURL implements url binding
type BinlogServerHandler ¶
type BinlogServerHandler struct {
// contains filtered or unexported fields
}
BinlogServerHandler is used for the api call of handling binlog server handler with lock will keep calling api with no compete
func (*BinlogServerHandler) GetBinlogServerStatus ¶
func (h *BinlogServerHandler) GetBinlogServerStatus(echoCtx echo.Context) error
GetBinlogServerStatus implements get binlog server status in the runtime state
func (*BinlogServerHandler) StartBinlogServer ¶
func (h *BinlogServerHandler) StartBinlogServer(echoCtx echo.Context) error
StartBinlogServer implements start a binlog server
func (*BinlogServerHandler) StopBinlogServer ¶
func (h *BinlogServerHandler) StopBinlogServer(echoCtx echo.Context) error
StopBinlogServer implements stop binlog server
type BinlogSyncerHandler ¶
type BinlogSyncerHandler struct {
// contains filtered or unexported fields
}
BinlogSyncerHandler is used handling the api call of binlog syncer. handler with lock will keep calling api with no compete
func (*BinlogSyncerHandler) GetBinlogSyncerStatus ¶
func (h *BinlogSyncerHandler) GetBinlogSyncerStatus(echoCtx echo.Context) error
GetBinlogSyncerStatus implements get binlog syncer status in the runtime state
func (*BinlogSyncerHandler) ProposeSyncerArgs ¶
func (h *BinlogSyncerHandler) ProposeSyncerArgs(args *config.SyncerArgs) error
ProposeSyncerArgs implements propose start syncer args to raft cluster when other node became to lead, it can use this information start syncer automatically
func (*BinlogSyncerHandler) StartBinlogSyncer ¶
func (h *BinlogSyncerHandler) StartBinlogSyncer(echoCtx echo.Context) error
StartBinlogSyncer implements start a binlog syncer
func (*BinlogSyncerHandler) StopBinlogSyncer ¶
func (h *BinlogSyncerHandler) StopBinlogSyncer(echoCtx echo.Context) error
StopBinlogSyncer implements stop binlog syncer
type Cluster ¶
type Cluster interface {
// GetID returns the cluster id
GetID() types.ID
// Members returns a slice of members sorted by their id
Members() []*membership.Member
// Member retrieves a particular member based on id, or nil if the
// member does not exist in the cluster
Member(id types.ID) *membership.Member
MemberByName(name string) *membership.Member
}
Cluster is responsible for a collection of members in one etcd cluster.
type MembershipHandler ¶
type MembershipHandler struct {
// contains filtered or unexported fields
}
MembershipHandler is used for handling the api call of membership in raft cluster
func (*MembershipHandler) AddMember ¶
func (h *MembershipHandler) AddMember(echoCtx echo.Context) error
AddMember implements add a member into raft cluster
func (*MembershipHandler) DeleteMember ¶
func (h *MembershipHandler) DeleteMember(echoCtx echo.Context) error
DeleteMember implements remove a member from raft cluster
func (*MembershipHandler) GetCluster ¶
func (h *MembershipHandler) GetCluster(echoCtx echo.Context) error
GetCluster implements get information of raft cluster
func (*MembershipHandler) GetMembers ¶
func (h *MembershipHandler) GetMembers(echoCtx echo.Context) error
GetMembers implements get information of membership, not include lead information
func (*MembershipHandler) UpdateAdminURL ¶
func (h *MembershipHandler) UpdateAdminURL(echoCtx echo.Context) error
UpdateAdminURL implements update raft node admin url in raft cluster
func (*MembershipHandler) UpdateMember ¶
func (h *MembershipHandler) UpdateMember(echoCtx echo.Context) error
UpdateMember implements update member information
type Role ¶
type Role struct {
ID string `json:"Id"`
membership.RaftAttributes
membership.Attributes
IsLeader bool `json:"isLeader"`
}
Role represents a node in cluster
type Server ¶
type Server interface {
// AddMember attempts to add a member into the cluster. It will return
// ErrIDRemoved if member id is removed from the cluster, or return
// ErrIDExists if member id exists in the cluster.
AddMember(ctx context.Context, memb membership.Member) ([]*membership.Member, error)
// RemoveMember attempts to remove a member from the cluster. It will
// return ErrIDRemoved if member id is removed from the cluster, or return
// ErrIDNotFound if member id is not in the cluster.
RemoveMember(ctx context.Context, id uint64) ([]*membership.Member, error)
// UpdateMember attempts to update an existing member in the cluster. It will
// return ErrIDNotFound if the member id does not exist.
UpdateMember(ctx context.Context, updateMemb membership.Member) ([]*membership.Member, error)
GetIP() string
IsLeader() bool
Leader() types.ID
Propose(data []byte) error
StartServer(svrType config.SubServerType, args interface{}) error
StopServer(svrType config.SubServerType)
GetServerStatus(svrType config.SubServerType) interface{}
}
Server is a kingbus server interface