Documentation
¶
Index ¶
- Constants
- Variables
- func AnalyzeNodeID(key string) string
- type EtcdRegistry
- func (r *EtcdRegistry) Close() error
- func (r *EtcdRegistry) Node(pctx context.Context, prefix, nodeID string) (status *Status, revision int64, err error)
- func (r *EtcdRegistry) Nodes(pctx context.Context, prefix string) (status []*Status, revision int64, err error)
- func (r *EtcdRegistry) UpdateNode(pctx context.Context, prefix string, status *Status) error
- func (r *EtcdRegistry) WatchNode(pctx context.Context, prefix string, revision int64) clientv3.WatchChan
- type Label
- type Status
Constants ¶
View Source
const ( // Online means the node can receive request. Online = "online" // Pausing means the node is pausing. Pausing = "pausing" // Paused means the node is already paused. Paused = "paused" // Closing means the node is closing, and the state will be Offline when closed. Closing = "closing" // Offline means the node is offline, and will not provide service. Offline = "offline" )
Variables ¶
View Source
var ( // DefaultRootPath is the root path of the keys stored in etcd, the `v1` is the tidb-binlog's version. DefaultRootPath = "/tidb-binlog/v1" // PumpNode is the name of pump. PumpNode = "pump" // DrainerNode is the name of drainer. DrainerNode = "drainer" // NodePrefix is the map (node => it's prefix in storage) NodePrefix = map[string]string{ PumpNode: "pumps", DrainerNode: "drainers", } )
Functions ¶
func AnalyzeNodeID ¶
AnalyzeNodeID returns nodeID by analyze key path.
Types ¶
type EtcdRegistry ¶
type EtcdRegistry struct {
// contains filtered or unexported fields
}
EtcdRegistry wraps the reactions with etcd
func NewEtcdRegistry ¶
func NewEtcdRegistry(cli *etcd.Client, reqTimeout time.Duration) *EtcdRegistry
NewEtcdRegistry returns an EtcdRegistry client
func (*EtcdRegistry) Node ¶
func (r *EtcdRegistry) Node(pctx context.Context, prefix, nodeID string) (status *Status, revision int64, err error)
Node returns the nodeStatus that matchs nodeID in the etcd
func (*EtcdRegistry) Nodes ¶
func (r *EtcdRegistry) Nodes(pctx context.Context, prefix string) (status []*Status, revision int64, err error)
Nodes retruns all the nodeStatuses in the etcd
func (*EtcdRegistry) UpdateNode ¶
UpdateNode update the node information.
type Status ¶
type Status struct {
// the id of node.
NodeID string `json:"nodeId"`
// the host of pump or node.
Addr string `json:"host"`
// the state of pump.
State string `json:"state"`
// the node is alive or not.
IsAlive bool `json:"isAlive"`
// the score of node, it is report by node, calculated by node's qps, disk usage and binlog's data size.
// if Score is less than 0, means this node is useless. Now only used for pump.
Score int64 `json:"score"`
// the label of this node. Now only used for pump.
// pump client will only send to a pump which label is matched.
Label *Label `json:"label"`
// for pump: max commit ts in pump
// for drainer: drainer has consume all binlog less than or equal MaxCommitTS
MaxCommitTS int64 `json:"maxCommitTS"`
// UpdateTS is the last update ts of node's status.
UpdateTS int64 `json:"updateTS"`
}
Status describes the status information of a tidb-binlog node in etcd.
func NodesStatusFromEtcdNode ¶
NodesStatusFromEtcdNode returns nodes' status under root node.
Click to show internal directories.
Click to hide internal directories.