| | |
| | | import ( |
| | | "fmt" |
| | | "net" |
| | | "os" |
| | | "strconv" |
| | | "strings" |
| | | |
| | | //"github.com/apache/servicecomb-service-center/syncer/pkg/utils" |
| | | "github.com/hashicorp/memberlist" |
| | |
| | | BroadcastInterval = 5 |
| | | MaxQueryRespSize = 50 * 1024 * 1024 |
| | | MaxQuerySize = 50 * 1024 * 1024 |
| | | MaxUserEventSize = 5 * 1024 |
| | | MaxUserEventSize = 9 * 1024 |
| | | ReplayOnJoinDefault = false |
| | | SnapshotPathDefault = "./serfSnapShot" |
| | | MaxEventBufferCount = 2048 |
| | | |
| | | TcpTransportPort = 30194 //tcp传输大数据量接口 |
| | | ) |
| | | |
| | | // DefaultConfig default config |
| | |
| | | return nil |
| | | } |
| | | |
| | | func isFileRightful(filePath string) bool { |
| | | if filePath != "" { |
| | | _, err := os.Stat(filePath) |
| | | if err != nil && os.IsNotExist(err) { |
| | | pos := strings.LastIndex(filePath, "/") |
| | | if pos != -1 { |
| | | filePath = filePath[0:pos] |
| | | } |
| | | |
| | | _, err = os.Stat(filePath) |
| | | if err == nil || !os.IsNotExist(err) { |
| | | return true |
| | | } else { |
| | | return false |
| | | } |
| | | } else { |
| | | return false |
| | | } |
| | | } |
| | | return false |
| | | } |
| | | |
| | | // convertToSerf convert Config to serf.Config |
| | | func (c *Config) convertToSerf() (*serf.Config, error) { |
| | | func (c *Config) convertToSerf(snapshotPath string) (*serf.Config, error) { |
| | | serfConf := serf.DefaultConfig() |
| | | |
| | | bindIP, bindPort, err := SplitHostPort(c.BindAddr, DefaultBindPort) |
| | |
| | | c.RetryMaxAttempts = retryMaxAttempts |
| | | } |
| | | |
| | | c.SnapshotPath = SnapshotPathDefault |
| | | if isFileRightful(snapshotPath) { |
| | | c.SnapshotPath = snapshotPath |
| | | } |
| | | |
| | | c.ReplayOnJoin = ReplayOnJoinDefault |
| | | |
| | | serfConf.QueryResponseSizeLimit = c.QueryResponseSizeLimit |
| | | serfConf.QuerySizeLimit = c.QuerySizeLimit |
| | | serfConf.UserEventSizeLimit = c.UserEventSizeLimit |
| | | serfConf.SnapshotPath = c.SnapshotPath |
| | | serfConf.EventBuffer = MaxEventBufferCount |
| | | |
| | | return serfConf, nil |
| | | } |