modify cluster logic

This commit is contained in:
zhouyuyan
2017-11-21 14:05:06 +08:00
parent 6a89b627d4
commit 5786e69b01
5 changed files with 18 additions and 2 deletions

View File

@@ -65,21 +65,32 @@ func (b *Broker) Start() {
log.Error("broker is null")
return
}
//listen clinet over tcp
if b.config.Port != "" {
go b.StartClientListening(false)
}
//listen for cluster
if b.config.Cluster.Port != "" {
go b.StartClusterListening()
}
//listen for websocket
if b.config.WsPort != "" {
go b.StartWebsocketListening()
}
//listen client over tls
if b.config.TlsPort != "" {
go b.StartClientListening(true)
}
//connect on other node in cluster
if len(b.config.Cluster.Routes) > 0 {
b.ConnectToRouters()
}
//system montior
go StateMonitor()
}
@@ -93,7 +104,6 @@ func StateMonitor() {
if v.UsedPercent > 75 {
debug.FreeOSMemory()
}
// fmt.Printf("Total: %v, Free:%v, UsedPercent:%f%%\n", v.Total, v.Free, v.UsedPercent)
}
}
}

View File

@@ -486,6 +486,11 @@ func (c *client) Close() {
if c.info.willMsg != nil {
b.PublishMessage(c.info.willMsg)
}
//do reconnect
if c.typ == REMOTE {
b.connectRouter(c.route.remoteUrl, "")
}
}
}

View File

@@ -11,7 +11,7 @@ import (
)
const (
CONFIGFILE = "hmq.config"
CONFIGFILE = "conf/hmq.config"
)
type Config struct {

View File

@@ -34,6 +34,7 @@ func (c *client) StartPing() {
err := c.WriterPacket(ping)
if err != nil {
log.Error("ping error: ", err)
c.Close()
}
}
}