Vários processos estão escutando na mesma porta. Mas até onde sei, apenas um processo pode escutar em uma porta. É possível (como?) Que vários processos possam escutar na mesma porta?
$ sudo lsof -n -i :80 | grep LISTEN
haproxy 2039 root 4u IPv4 12874 0t0 TCP *:http (LISTEN)
haproxy 2042 root 4u IPv4 12898 0t0 TCP *:http (LISTEN)
haproxy 2045 root 4u IPv4 12923 0t0 TCP *:http (LISTEN)
pstree
saída:
init
├─acpid -c /etc/acpi/events -s /var/run/acpid.socket
├─atd
├─cron
├─dbus-daemon --system --fork
├─dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
├─docker -d
│ └─6*[{docker}]
├─getty -8 38400 tty4
├─getty -8 38400 tty5
├─getty -8 38400 tty2
├─getty -8 38400 tty3
├─getty -8 38400 tty6
├─getty -8 38400 tty1
├─getty -8 38400 ttyS0
├─haproxy -f /etc/haproxy/haproxy.cfg
├─haproxy -f /etc/haproxy/haproxy.cfg
├─haproxy -f /etc/haproxy/haproxy.cfg
configuração haproxy:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
user ubuntu
group ubuntu
daemon
defaults
log global
mode http
option httplog
option dontlognull
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen appname 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats
balance roundrobin
option httpclose
option forwardfor
server lamp1 172.31.20.0:81 check
server lamp2 172.31.20.1:81 check
fork
. Se apenas um processo puder escutar nessa porta - qual seria?Respostas:
É possível. O objetivo é processar várias conexões de entrada em paralelo. Múltiplo
haproxy
instâncias podem utilizar núcleos de CPU separados e funcionar (semi-) de forma independente. A conexão de entrada será passada para inativahaproxy
(se disponível) em vez de ser enfileirado para ocupado.eu achohaproxy
usaSO_REUSEPORT
.man 7 socket
explica esta opção como esta:Verifique também
SO_ATTACH_REUSEPORT_CBPF
eSO_ATTACH_REUSEPORT_EBPF
lá.Edit: eu encontrei Este artigo (de 3 de maio de 2017); parece apoiar meu palpite:
Não se preocupe com o problema. O artigo descreve soluções alternativas e uma solução. Você pode achar interessante se você gosta desse tipo de coisa.
fonte