reuseport

package
v1.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2020 License: MIT, MIT Imports: 4 Imported by: 0

Documentation

Overview

Package reuseport provides TCP net.Listener with SO_REUSEPORT support.

SO_REUSEPORT allows linear scaling server performance on multi-CPU servers. See https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/ for more details :)

The package is based on https://github.com/kavu/go_reuseport .

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Listen

func Listen(network, addr string) (net.Listener, error)

Listen returns TCP listener with SO_REUSEPORT option set.

The returned listener tries enabling the following TCP options, which usually have positive impact on performance:

  • TCP_DEFER_ACCEPT. This option expects that the server reads from accepted connections before writing to them.

- TCP_FASTOPEN. See https://lwn.net/Articles/508865/ for details.

Use https://github.com/gofiber/tcplisten if you want customizing these options.

Only tcp4 and tcp6 networks are supported.

ErrNoReusePort error is returned if the system doesn't support SO_REUSEPORT.

Types

type ErrNoReusePort

type ErrNoReusePort struct {
	// contains filtered or unexported fields
}

ErrNoReusePort is returned if the OS doesn't support SO_REUSEPORT.

func (*ErrNoReusePort) Error

func (e *ErrNoReusePort) Error() string

Error implements error interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL