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, error)
- func (r *EtcdRegistry) Nodes(pctx context.Context, prefix string) ([]*Status, error)
- func (r *EtcdRegistry) UpdateNode(pctx context.Context, prefix string, status *Status) error
- func (r *EtcdRegistry) WatchNode(pctx context.Context, prefix string) 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) 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.
Click to show internal directories.
Click to hide internal directories.