本文整理汇总了Golang中github.com/funkygao/gafka/zk.ZkZone.Name方法的典型用法代码示例。如果您正苦于以下问题:Golang ZkZone.Name方法的具体用法?Golang ZkZone.Name怎么用?Golang ZkZone.Name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/funkygao/gafka/zk.ZkZone
的用法示例。
在下文中一共展示了ZkZone.Name方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printLeader
func (this *Zookeeper) printLeader(zkzone *zk.ZkZone) {
// FIXME all zones will only show the 1st zone info because it blocks others
for {
this.Ui.Output(color.Blue(zkzone.Name()))
for zkhost, lines := range zkzone.RunZkFourLetterCommand("mntr") {
if this.zkHost != "" && !strings.HasPrefix(zkhost, this.zkHost+":") {
continue
}
parts := strings.Split(lines, "\n")
for _, l := range parts {
if strings.HasPrefix(l, "zk_server_state") && strings.HasSuffix(l, "leader") {
this.Ui.Output(color.Green("%28s", zkhost))
break
}
}
}
if this.watchMode {
time.Sleep(time.Second * 5)
} else {
break
}
}
}
示例2: runSub
func (this *Kateway) runSub(zkzone *zk.ZkZone) {
zone := ctx.Zone(zkzone.Name())
cf := api.DefaultConfig(zone.SmokeApp, zone.SmokeSecret)
cf.Sub.Endpoint = zone.SubEndpoint
cli := api.NewClient(cf)
t1 := time.Now()
err := cli.Sub(api.SubOption{
AppId: zone.SmokeHisApp,
Topic: zone.SmokeTopic,
Ver: zone.SmokeTopicVersion,
Group: zone.SmokeGroup,
AutoClose: false,
}, func(statusCode int, subMsg []byte) error {
now := time.Now()
var e error
if statusCode != http.StatusOK {
e = fmt.Errorf("unexpected http status: %s, body:%s", http.StatusText(statusCode), string(subMsg))
}
this.Ui.Output(fmt.Sprintf("-> %s: %s %v", now.Sub(t1), string(subMsg), e))
time.Sleep(time.Millisecond * 100)
t1 = time.Now()
return e
})
if err != nil {
this.Ui.Error(err.Error())
}
}
示例3: printSummary
func (this *Clusters) printSummary(zkzone *zk.ZkZone, clusterPattern string, port string) {
lines := []string{"Zone|Cluster|Brokers|Topics|Partitions|FlatMsg|Cum"}
type summary struct {
zone, cluster string
brokers, topics, partitions int
flat, cum int64
}
summaries := make([]summary, 0, 10)
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
if !patternMatched(zkcluster.Name(), clusterPattern) {
return
}
brokers, topics, partitions, flat, cum := this.clusterSummary(zkcluster)
summaries = append(summaries, summary{zkzone.Name(), zkcluster.Name(), brokers, topics, partitions,
flat, cum})
})
sortutil.DescByField(summaries, "cum")
var totalFlat, totalCum int64
for _, s := range summaries {
lines = append(lines, fmt.Sprintf("%s|%s|%d|%d|%d|%s|%s",
s.zone, s.cluster, s.brokers, s.topics, s.partitions,
gofmt.Comma(s.flat), gofmt.Comma(s.cum)))
totalCum += s.cum
totalFlat += s.flat
}
this.Ui.Output(columnize.SimpleFormat(lines))
this.Ui.Output(fmt.Sprintf("Flat:%s Cum:%s", gofmt.Comma(totalFlat), gofmt.Comma(totalCum)))
}
示例4: printControllers
// Print all controllers of all clusters within a zone.
func (this *Controllers) printControllers(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
zkzone.ForSortedControllers(func(cluster string, controller *zk.ControllerMeta) {
if !patternMatched(cluster, this.cluster) {
return
}
this.Ui.Output(strings.Repeat(" ", 4) + cluster)
if controller == nil {
this.Ui.Output(fmt.Sprintf("\t%s", color.Red("empty")))
} else {
epochSince := time.Since(controller.Mtime.Time())
epochSinceStr := gofmt.PrettySince(controller.Mtime.Time())
if epochSince < time.Hour*2*24 {
epochSinceStr = color.Red(epochSinceStr)
}
this.Ui.Output(fmt.Sprintf("\t%-2s %21s epoch:%2s/%-20s uptime:%s",
controller.Broker.Id, controller.Broker.Addr(),
controller.Epoch,
epochSinceStr,
gofmt.PrettySince(controller.Broker.Uptime())))
}
})
}
示例5: displayZoneTop
func (this *Zktop) displayZoneTop(zkzone *zk.ZkZone) {
if this.batchMode {
this.Ui.Output(fmt.Sprintf("%s %s", zkzone.Name(), bjtime.NowBj()))
} else {
this.Ui.Output(color.Green(zkzone.Name()))
}
header := "VER SERVER PORT M OUTST RECVD SENT CONNS ZNODES LAT(MIN/AVG/MAX)"
this.Ui.Output(header)
stats := zkzone.RunZkFourLetterCommand("stat")
sortedHosts := make([]string, 0, len(stats))
for hp, _ := range stats {
sortedHosts = append(sortedHosts, hp)
}
sort.Strings(sortedHosts)
for _, hostPort := range sortedHosts {
host, port, err := net.SplitHostPort(hostPort)
if err != nil {
panic(err)
}
stat := zk.ParseStatResult(stats[hostPort])
if stat.Mode == "" {
if this.batchMode {
stat.Mode = "E"
} else {
stat.Mode = color.Red("E")
}
} else if stat.Mode == "L" && !this.batchMode {
stat.Mode = color.Blue(stat.Mode)
}
var sentQps, recvQps int
if lastRecv, present := this.lastRecvs[hostPort]; present {
r1, _ := strconv.Atoi(stat.Received)
r0, _ := strconv.Atoi(lastRecv)
recvQps = (r1 - r0) / int(this.refreshInterval.Seconds())
s1, _ := strconv.Atoi(stat.Sent)
s0, _ := strconv.Atoi(this.lastSents[hostPort])
sentQps = (s1 - s0) / int(this.refreshInterval.Seconds())
}
this.Ui.Output(fmt.Sprintf("%-15s %-15s %5s %1s %6s %16s %16s %5s %7s %s",
stat.Version, // 15
host, // 15
port, // 5
stat.Mode, // 1
stat.Outstanding, // 6
fmt.Sprintf("%s/%d", stat.Received, recvQps), // 16
fmt.Sprintf("%s/%d", stat.Sent, sentQps), // 16
stat.Connections, // 5
stat.Znodes, // 7
stat.Latency,
))
this.lastRecvs[hostPort] = stat.Received
this.lastSents[hostPort] = stat.Sent
}
}
示例6: displayZoneMaxPort
func (this *Topology) displayZoneMaxPort(zkzone *zk.ZkZone) {
maxPort := 0
zkzone.ForSortedBrokers(func(cluster string, liveBrokers map[string]*zk.BrokerZnode) {
for _, broker := range liveBrokers {
if maxPort < broker.Port {
maxPort = broker.Port
}
}
})
this.Ui.Output(fmt.Sprintf("max port in zone[%s]: %d", zkzone.Name(), maxPort))
}
示例7: runBenchmark
func (this *Kateway) runBenchmark(zkzone *zk.ZkZone) {
this.Ui.Info(fmt.Sprintf("benchmark[%s] zone[%s] %s.%s.%s %s",
this.benchId, zkzone.Name(),
this.benchApp, this.benchTopic, this.benchVer, this.benchPubEndpoint))
yes, _ := this.Ui.Ask("Are you sure to execute the benchmark? [Y/N]")
if yes == "Y" {
log.SetOutput(os.Stdout)
stress.Flags.Round = 5
stress.Flags.Tick = 5
if this.benchmarkMaster != "" {
stress.Flags.MasterAddr = stress.MasterAddr(this.benchmarkMaster)
}
stress.RunStress(this.benchPub)
}
}
示例8: verifyBrokers
func (this *Clusters) verifyBrokers(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
zkzone.ForSortedBrokers(func(cluster string, liveBrokers map[string]*zk.BrokerZnode) {
zkcluster := zkzone.NewCluster(cluster)
registeredBrokers := zkcluster.RegisteredInfo().Roster
// find diff between registeredBrokers and liveBrokers
// loop1 find liveBrokers>registeredBrokers
for _, broker := range liveBrokers {
foundInRoster := false
for _, b := range registeredBrokers {
bid := strconv.Itoa(b.Id)
if bid == broker.Id && broker.Addr() == b.Addr() {
foundInRoster = true
break
}
}
if !foundInRoster {
// should manually register the broker
this.Ui.Output(strings.Repeat(" ", 4) +
color.Green("+ gk clusters -z %s -s -c %s -addbroker %s:%s",
zkzone.Name(), cluster, broker.Id, broker.Addr()))
}
}
// loop2 find liveBrokers<registeredBrokers
for _, b := range registeredBrokers {
foundInLive := false
for _, broker := range liveBrokers {
bid := strconv.Itoa(b.Id)
if bid == broker.Id && broker.Addr() == b.Addr() {
foundInLive = true
break
}
}
if !foundInLive {
// the broker is dead
this.Ui.Output(strings.Repeat(" ", 4) +
color.Red("cluster[%s] broker[%d] %s is dead", cluster, b.Id, b.Addr()))
}
}
})
}
示例9: runPub
func (this *Kateway) runPub(zkzone *zk.ZkZone) {
zone := ctx.Zone(zkzone.Name())
cf := api.DefaultConfig(zone.SmokeApp, zone.SmokeSecret)
cf.Pub.Endpoint = zone.PubEndpoint
cli := api.NewClient(cf)
for {
now := time.Now()
pubMsg := fmt.Sprintf("gk kateway -pub smoke test msg: [%s]", now)
err := cli.Pub("", []byte(pubMsg), api.PubOption{
Topic: zone.SmokeTopic,
Ver: zone.SmokeTopicVersion,
})
this.Ui.Output(fmt.Sprintf("<- %s: %s %v", time.Since(now), pubMsg, err))
time.Sleep(time.Millisecond * 100)
}
}
示例10: printZkStats
func (this *Zookeeper) printZkStats(zkzone *zk.ZkZone) {
for {
this.Ui.Output(color.Blue(zkzone.Name()))
for zkhost, lines := range zkzone.RunZkFourLetterCommand(this.flw) {
if this.zkHost != "" && !strings.HasPrefix(zkhost, this.zkHost+":") {
continue
}
this.Ui.Output(fmt.Sprintf("%s\n%s", color.Green("%28s", zkhost), lines))
}
if this.watchMode {
time.Sleep(time.Second * 5)
} else {
break
}
}
}
示例11: New
func New(zkzone *zk.ZkZone, listenAddr string, managerType string) Controller {
// mysql cluster config
b, err := zkzone.KatewayJobClusterConfig()
if err != nil {
panic(err)
}
var mcc = &config.ConfigMysql{}
if err = mcc.From(b); err != nil {
panic(err)
}
this := &controller{
quiting: make(chan struct{}),
orchestrator: zkzone.NewOrchestrator(),
mc: mysql.New(mcc),
ListenAddr: listenAddr,
Version: gafka.BuildId,
}
this.ident, err = this.generateIdent()
if err != nil {
panic(err)
}
// hostname:95f333fb-731c-9c95-c598-8d6b99a9ec7d
p := strings.SplitN(this.ident, ":", 2)
this.shortId = fmt.Sprintf("%s:%s", p[0], this.ident[strings.LastIndexByte(this.ident, '-')+1:])
this.setupAuditor()
switch managerType {
case "mysql":
cf := mmysql.DefaultConfig(zkzone.Name())
cf.Refresh = time.Minute * 5
manager.Default = mmysql.New(cf)
case "dummy":
manager.Default = mdummy.New("")
default:
panic("unknown manager: " + managerType)
}
return this
}
示例12: printRegisteredBrokers
func (this *Clusters) printRegisteredBrokers(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
info := zkcluster.RegisteredInfo()
this.Ui.Output(fmt.Sprintf(" %s(%s)", info.Name(), info.Nickname))
registeredBrokers := info.Roster
if len(registeredBrokers) == 0 {
this.Ui.Warn(" brokers not registered")
} else {
for _, b := range registeredBrokers {
if this.ipInNumber {
this.Ui.Output(fmt.Sprintf(" %2d %s", b.Id, b.Addr()))
} else {
this.Ui.Output(fmt.Sprintf(" %2d %s", b.Id, b.NamedAddr()))
}
}
}
})
}
示例13: discoverClusters
func (this *Discover) discoverClusters(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
existingClusters := zkzone.Clusters()
existingCluserPaths := make(map[string]struct{}, len(existingClusters))
for _, path := range existingClusters {
existingCluserPaths[path] = struct{}{}
}
discoveredClusters, err := zkzone.DiscoverClusters("/")
if err != nil {
this.Ui.Error(zkzone.Name() + ": " + err.Error())
return
}
// print each cluster state: new, normal
for _, zkpath := range discoveredClusters {
if _, present := existingCluserPaths[zkpath]; !present {
this.Ui.Output(strings.Repeat(" ", 4) + color.Green("%s +++",
zkpath))
} else {
this.Ui.Output(strings.Repeat(" ", 4) + zkpath)
}
}
// find the offline clusters
for c, path := range existingClusters {
path = strings.TrimSpace(path)
foundOnline := false
for _, p := range discoveredClusters {
p = strings.TrimSpace(p)
if p == path {
foundOnline = true
break
}
}
if !foundOnline {
this.Ui.Output(strings.Repeat(" ", 4) + color.Red("%s: %s ---", c, path))
}
}
}
示例14: printConsumersByHost
func (this *Consumers) printConsumersByHost(zkzone *zk.ZkZone, clusterPattern string) {
outputs := make(map[string]map[string]map[string]int) // host: {cluster: {topic: count}}
this.Ui.Output(color.Blue(zkzone.Name()))
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
if !patternMatched(zkcluster.Name(), clusterPattern) {
return
}
consumerGroups := zkcluster.ConsumerGroups()
for _, group := range consumerGroups {
for _, c := range group {
if _, present := outputs[c.Host()]; !present {
outputs[c.Host()] = make(map[string]map[string]int)
}
if _, present := outputs[c.Host()][zkcluster.Name()]; !present {
outputs[c.Host()][zkcluster.Name()] = make(map[string]int)
}
for topic, count := range c.Subscription {
outputs[c.Host()][zkcluster.Name()][topic] += count
}
}
}
})
sortedHosts := make([]string, 0, len(outputs))
for host, _ := range outputs {
sortedHosts = append(sortedHosts, host)
}
sort.Strings(sortedHosts)
for _, host := range sortedHosts {
tc := outputs[host]
this.Ui.Output(fmt.Sprintf("%s %+v", color.Green("%22s", host), tc))
}
}
示例15: displayZoneBrokers
func (this *Brokers) displayZoneBrokers(zkzone *zk.ZkZone) {
lines := make([]string, 0)
header := "Zone|Cluster|Id|Broker|Uptime"
lines = append(lines, header)
n := 0
zkzone.ForSortedBrokers(func(cluster string, liveBrokers map[string]*zk.BrokerZnode) {
outputs := this.clusterBrokers(zkzone.Name(), cluster, liveBrokers)
n += len(outputs)
lines = append(lines, outputs...)
})
if this.staleOnly {
this.Ui.Info(fmt.Sprintf("%d problematic brokers in zone[%s]", n, zkzone.Name()))
} else {
this.Ui.Info(fmt.Sprintf("%d brokers in zone[%s]", n, zkzone.Name()))
}
if len(lines) > 1 {
// lines has header
this.Ui.Output(columnize.SimpleFormat(lines))
}
}