Skip to content

Commit

Permalink
Config bind addresses from command line, and allow serf memberlist to…
Browse files Browse the repository at this point in the history
… be configured
  • Loading branch information
transitorykris authored and travisjeffery committed Jan 24, 2017
1 parent 3dbfe17 commit 55577b7
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 7 deletions.
6 changes: 6 additions & 0 deletions broker/broker.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ type Broker struct {
serfReconcileCh chan serf.Member
serfReconcileInterval time.Duration
serfEventCh chan serf.Event
serfMembers []string

left bool
shutdownCh chan struct{}
Expand Down Expand Up @@ -95,6 +96,11 @@ func New(id int32, opts ...BrokerFn) (*Broker, error) {
return nil, err
}

if len(b.serfMembers) != 0 {
cluster := []string{"127.0.0.1:7946"}
b.serf.Join(cluster, false)
}

if err = b.setupRaft(); err != nil {
return nil, err
}
Expand Down
6 changes: 6 additions & 0 deletions broker/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ func SerfPort(serfPort int) BrokerFn {
}
}

func SerfMembers(serfMembers []string) BrokerFn {
return func(b *Broker) {
b.serfMembers = serfMembers
}
}

func BindAddr(bindAddr string) BrokerFn {
return func(b *Broker) {
b.bindAddr = bindAddr
Expand Down
23 changes: 16 additions & 7 deletions cmd/jocko/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"fmt"
"os"
"strings"
"time"

"github.com/tj/go-gracefully"
Expand All @@ -13,12 +14,15 @@ import (
)

var (
logDir = kingpin.Flag("logdir", "A comma separated list of directories under which to store log files").Default("/tmp/jocko").String()
tcpAddr = kingpin.Flag("tcpaddr", "HTTP Address to listen on").String()
raftDir = kingpin.Flag("raftdir", "Directory for raft to store data").String()
raftAddr = kingpin.Flag("raftaddr", "Address for Raft to bind on").String()
brokerID = kingpin.Flag("id", "Broker ID").Int32()
debugLogs = kingpin.Flag("debug", "Enable debug logs").Default("false").Bool()
logDir = kingpin.Flag("logdir", "A comma separated list of directories under which to store log files").Default("/tmp/jocko").String()
tcpAddr = kingpin.Flag("tcpaddr", "HTTP Address to listen on").String()
raftDir = kingpin.Flag("raftdir", "Directory for raft to store data").String()
raftAddr = kingpin.Flag("raftaddr", "Address for Raft to bind on").String()
raftPort = kingpin.Flag("raftport", "Port for Raft to bind on").Int()
serfPort = kingpin.Flag("serfport", "Port for Serf to bind on").Default("7946").Int()
serfMembers = kingpin.Flag("serfmembers", "List of existing serf members").String()
brokerID = kingpin.Flag("id", "Broker ID").Int32()
debugLogs = kingpin.Flag("debug", "Enable debug logs").Default("false").Bool()
)

func main() {
Expand All @@ -33,7 +37,12 @@ func main() {
store, err := broker.New(*brokerID,
broker.DataDir(*logDir),
broker.LogDir(*logDir),
broker.Logger(logger))
broker.Logger(logger),
broker.BindAddr(*raftAddr),
broker.RaftPort(*raftPort),
broker.SerfPort(*serfPort),
broker.SerfMembers(strings.Split(*serfMembers, ",")),
)
if err != nil {
fmt.Fprintf(os.Stderr, "Error with new broker: %s\n", err)
os.Exit(1)
Expand Down

0 comments on commit 55577b7

Please sign in to comment.