Backport export reuse-port and reuse-address
so that they cabn be configured via config file. Co-authored-by: Shawn Gerrard <shawn.gerrard@gmail.com> Signed-off-by: James Blair <mail@jamesblair.net>
This commit is contained in:
parent
2d2e75dd8e
commit
2a7bffc63e
@ -21,12 +21,12 @@ type SocketOpts struct {
|
|||||||
// in which case lock on data file could result in unexpected
|
// in which case lock on data file could result in unexpected
|
||||||
// condition. User should take caution to protect against lock race.
|
// condition. User should take caution to protect against lock race.
|
||||||
// [1] https://man7.org/linux/man-pages/man7/socket.7.html
|
// [1] https://man7.org/linux/man-pages/man7/socket.7.html
|
||||||
ReusePort bool
|
ReusePort bool `json:"reuse-port"`
|
||||||
// ReuseAddress enables a socket option SO_REUSEADDR which allows
|
// ReuseAddress enables a socket option SO_REUSEADDR which allows
|
||||||
// binding to an address in `TIME_WAIT` state. Useful to improve MTTR
|
// binding to an address in `TIME_WAIT` state. Useful to improve MTTR
|
||||||
// in cases where etcd slow to restart due to excessive `TIME_WAIT`.
|
// in cases where etcd slow to restart due to excessive `TIME_WAIT`.
|
||||||
// [1] https://man7.org/linux/man-pages/man7/socket.7.html
|
// [1] https://man7.org/linux/man-pages/man7/socket.7.html
|
||||||
ReuseAddress bool
|
ReuseAddress bool `json:"reuse-address"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func getControls(sopts *SocketOpts) Controls {
|
func getControls(sopts *SocketOpts) Controls {
|
||||||
|
@ -264,7 +264,7 @@ type Config struct {
|
|||||||
GRPCKeepAliveTimeout time.Duration `json:"grpc-keepalive-timeout"`
|
GRPCKeepAliveTimeout time.Duration `json:"grpc-keepalive-timeout"`
|
||||||
|
|
||||||
// SocketOpts are socket options passed to listener config.
|
// SocketOpts are socket options passed to listener config.
|
||||||
SocketOpts transport.SocketOpts
|
SocketOpts transport.SocketOpts `json:"socket-options"`
|
||||||
|
|
||||||
// PreVote is true to enable Raft Pre-Vote.
|
// PreVote is true to enable Raft Pre-Vote.
|
||||||
// If enabled, Raft runs an additional election phase
|
// If enabled, Raft runs an additional election phase
|
||||||
@ -470,7 +470,10 @@ func NewConfig() *Config {
|
|||||||
GRPCKeepAliveInterval: DefaultGRPCKeepAliveInterval,
|
GRPCKeepAliveInterval: DefaultGRPCKeepAliveInterval,
|
||||||
GRPCKeepAliveTimeout: DefaultGRPCKeepAliveTimeout,
|
GRPCKeepAliveTimeout: DefaultGRPCKeepAliveTimeout,
|
||||||
|
|
||||||
SocketOpts: transport.SocketOpts{},
|
SocketOpts: transport.SocketOpts{
|
||||||
|
ReusePort: false,
|
||||||
|
ReuseAddress: false,
|
||||||
|
},
|
||||||
|
|
||||||
TickMs: 100,
|
TickMs: 100,
|
||||||
ElectionMs: 1000,
|
ElectionMs: 1000,
|
||||||
|
Loading…
Reference in New Issue
Block a user