randomize based on self address

fix #851
This commit is contained in:
Chris Lu committed 2019-01-28 11:55:33 -08:00
1 parent 221105eea3
commit 6230eb28a6
2 files changed
+11

No files matched your search

+2
View File
@@ -14,6 +14,7 @@ import (
"github.com/chrislusf/raft"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/topology"
"github.com/chrislusf/seaweedfs/weed/util"
"github.com/gorilla/mux"
)
@@ -71,6 +72,7 @@ func NewRaftServer(r *mux.Router, peers []string, httpAddr string, dataDir strin
for _, peer := range s.peers {
s.raftServer.AddPeer(peer, "http://"+peer)
}
rand.Seed(util.HashBytesToInt64([]byte(httpAddr)))
time.Sleep(time.Duration(1000+rand.Int31n(3000)) * time.Millisecond)
if s.raftServer.IsLogEmpty() {
// Initialize the server by joining itself.
+9
View File
@@ -0,0 +1,9 @@
package util
import "hash/fnv"
func HashBytesToInt64(x []byte) int64 {
hash := fnv.New64()
hash.Write(x)
return int64(hash.Sum64())
}