metadata

package
v0.0.0-...-17d74a4 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ETCD_BASE           = "pretty-q"
	ETCD_TOPIC          = "topic"
	ETCD_SHARDING       = "sharding"
	ETCD_REPLICA_SET    = "replica-set"
	ETCD_REPLICA_LEADER = "leader"
	ETCD_REPLICA        = "replica"
)

Variables

This section is empty.

Functions

func EtcdKeyReplica

func EtcdKeyReplica(prettyQInstance string, sharding string, replica string) string

func EtcdKeyReplicaLeader

func EtcdKeyReplicaLeader(prettyQInstance string, sharding string) string

func EtcdKeyReplicaSet

func EtcdKeyReplicaSet(prettyQInstance string, sharding string) string

func EtcdKeyShardingAll

func EtcdKeyShardingAll(prettyQInstance string) string

func EtcdKeyTopic

func EtcdKeyTopic(prettyQInstance string, topic string) string

func EtcdKeyTopicAll

func EtcdKeyTopicAll(prettyQInstance string) string

Types

type EtcdClient

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

etcd客户端,用于查询和更新etcd中pretty-q的元数据,以及实现replica set leader选举等

func NewEtcdClient

func NewEtcdClient(prettyQInstance string, endpoints string, dialTimeout time.Duration) (*EtcdClient, error)

func (*EtcdClient) Close

func (m *EtcdClient) Close()

func (*EtcdClient) ElectReplicaLeader

func (m *EtcdClient) ElectReplicaLeader(sharding string, previousLeader string, voteLeader string, timeout time.Duration) (success bool, newLeader string, e error)

对某个sharding的副本集进行leader选举,抢占式先到先得

func (*EtcdClient) GetShardings

func (m *EtcdClient) GetShardings(timeout time.Duration) ([]*EtcdReplica, error)

获取所有的sharding server信息,其中server地址为副本集中leader的地址

func (*EtcdClient) GetTopics

func (m *EtcdClient) GetTopics(timeout time.Duration) ([]*EtcdTopic, error)

获取所有的topic信息

type EtcdInstance

type EtcdInstance struct {
	Name         string   //prettyQ instance name
	TopicList    []string //topic list
	ShardingList []string //sharding list
}

考虑到多个prettyQ实例使用同一个etcd服务,因此通过instance来区分不同的prettyQ集群

type EtcdReplica

type EtcdReplica struct {
	Name  string
	Addr  string
	MsgSn uint64 //递增全局消息id,用于协调同步副本间的状态一致性
}

type EtcdTopic

type EtcdTopic struct {
	Name     string //topic name
	FileSize uint32 //datafile max-size
}

Jump to

Keyboard shortcuts

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