本文整理汇总了Golang中github.com/ksarch-saas/cc/topo.Node.IsMaster方法的典型用法代码示例。如果您正苦于以下问题:Golang Node.IsMaster方法的具体用法?Golang Node.IsMaster怎么用?Golang Node.IsMaster使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/ksarch-saas/cc/topo.Node
的用法示例。
在下文中一共展示了Node.IsMaster方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: toReadable
func toReadable(node *topo.Node, state string) *RNode {
if node == nil {
return nil
}
var id string
if context.Display == "simple" {
id = node.Id[:6]
} else {
id = node.Id
}
n := &RNode{
State: state,
Id: id,
ParentId: node.ParentId,
Tag: node.Tag,
Role: "S",
Fail: "OK",
Mode: "--",
Addr: fmt.Sprintf("%s:%d", node.Ip, node.Port),
Keys: node.SummaryInfo.Keys,
Link: node.SummaryInfo.MasterLinkStatus,
QPS: node.SummaryInfo.InstantaneousOpsPerSec,
}
if node.Role == "master" {
n.Role = "M"
}
if node.Fail {
n.Fail = "Fail"
}
if node.Readable && node.Writable {
n.Mode = "rw"
}
if node.Readable && !node.Writable {
n.Mode = "r-"
}
if !node.Readable && node.Writable {
n.Mode = "-w"
}
if node.IsMaster() {
n.Link = "-"
}
n.UsedMemory = fmt.Sprintf("%0.2fG", float64(node.SummaryInfo.UsedMemory)/1024.0/1024.0/1024.0)
n.NetIn = fmt.Sprintf("%.2fKbps", node.SummaryInfo.InstantaneousInputKbps)
n.NetOut = fmt.Sprintf("%.2fKbps", node.SummaryInfo.InstantaneousOutputKbps)
n.Repl = fmt.Sprintf("%d", node.ReplOffset)
return n
}
示例2: initClusterTopo
func (self *Inspector) initClusterTopo(seed *topo.Node) (*topo.Cluster, error) {
resp, err := redis.ClusterNodesInRegion(seed.Addr(), self.LocalRegion)
if err != nil && strings.HasPrefix(err.Error(), "ERR Wrong CLUSTER subcommand or number of arguments") {
//server version do not support 'cluster nodes extra [region]'
resp, err = redis.ClusterNodes(seed.Addr())
}
if err != nil {
return nil, err
}
cluster := topo.NewCluster(self.LocalRegion)
var summary topo.SummaryInfo
var nodeidx *topo.Node
var cnt int
lines := strings.Split(resp, "\n")
cnt = 0
for _, line := range lines {
if strings.HasPrefix(line, "# ") {
summary.ReadLine(line)
continue
}
line = strings.TrimSpace(line)
if line == "" {
continue
}
node, myself, err := self.buildNode(line)
if err == ErrNodeInHandShake || err == ErrNodeNoAddr {
continue
}
// Fix 'cluster nodes extra' & 'cluster nodes extra region' compatiable
if node.Region != self.LocalRegion {
continue
}
if err != nil {
return nil, err
}
if node.Ip == "127.0.0.1" {
node.Ip = seed.Ip
}
// 遇到myself,读取该节点的ClusterInfo
if myself {
info, err := redis.FetchClusterInfo(node.Addr())
if err != nil {
return nil, err
}
node.ClusterInfo = info
node.SummaryInfo = summary
}
cluster.AddNode(node)
nodeidx = node
cnt++
}
if cnt == 1 {
if nodeidx.IsMaster() && len(nodeidx.Ranges) == 0 {
glog.Infof("Node %s is free node", nodeidx.Addr())
nodeidx.SetFree(true)
}
}
return cluster, nil
}