mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
accept machine list to join cluster
This commit is contained in:
parent
78cb13cf19
commit
8af746ef6d
21
etcd.go
21
etcd.go
@ -27,7 +27,8 @@ import (
|
|||||||
|
|
||||||
var verbose bool
|
var verbose bool
|
||||||
|
|
||||||
var cluster string
|
var machines string
|
||||||
|
var cluster []string
|
||||||
|
|
||||||
var address string
|
var address string
|
||||||
var clientPort int
|
var clientPort int
|
||||||
@ -51,7 +52,7 @@ var maxSize int
|
|||||||
func init() {
|
func init() {
|
||||||
flag.BoolVar(&verbose, "v", false, "verbose logging")
|
flag.BoolVar(&verbose, "v", false, "verbose logging")
|
||||||
|
|
||||||
flag.StringVar(&cluster, "C", "", "the ip address and port of a existing cluster")
|
flag.StringVar(&machines, "C", "", "the ip address and port of a existing machines in cluster, sepearate by comma")
|
||||||
|
|
||||||
flag.StringVar(&address, "a", "0.0.0.0", "the ip address of the local machine")
|
flag.StringVar(&address, "a", "0.0.0.0", "the ip address of the local machine")
|
||||||
flag.IntVar(&clientPort, "c", 4001, "the port to communicate with clients")
|
flag.IntVar(&clientPort, "c", 4001, "the port to communicate with clients")
|
||||||
@ -135,6 +136,8 @@ var info *Info
|
|||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
cluster = strings.Split(machines, ",")
|
||||||
|
|
||||||
// Setup commands.
|
// Setup commands.
|
||||||
registerCommands()
|
registerCommands()
|
||||||
|
|
||||||
@ -203,7 +206,7 @@ func startRaft(securityType int) {
|
|||||||
if raftServer.IsLogEmpty() {
|
if raftServer.IsLogEmpty() {
|
||||||
|
|
||||||
// start as a leader in a new cluster
|
// start as a leader in a new cluster
|
||||||
if cluster == "" {
|
if len(cluster) == 0 {
|
||||||
raftServer.StartLeader()
|
raftServer.StartLeader()
|
||||||
|
|
||||||
time.Sleep(time.Millisecond * 20)
|
time.Sleep(time.Millisecond * 20)
|
||||||
@ -223,9 +226,17 @@ func startRaft(securityType int) {
|
|||||||
} else {
|
} else {
|
||||||
raftServer.StartFollower()
|
raftServer.StartFollower()
|
||||||
|
|
||||||
err := joinCluster(raftServer, cluster)
|
for _, machine := range cluster {
|
||||||
|
|
||||||
|
err := joinCluster(raftServer, machine)
|
||||||
|
if err != nil {
|
||||||
|
debug("cannot join to cluster via machine %s", machine)
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fatal(fmt.Sprintln(err))
|
fatal("cannot join to cluster via all given machines!")
|
||||||
}
|
}
|
||||||
debug("%s success join to the cluster", raftServer.Name())
|
debug("%s success join to the cluster", raftServer.Name())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user