Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dzdh
V2EX  ›  Linux

Systemd 可以让两个不同的 service 使用同一个监听吗(socket 做 本机的 LB)

  •  
  •   dzdh · Dec 24, 2022 · 2982 views
    This topic created in 1253 days ago, the information mentioned may be changed or developed.

    systemd socket 监听一个端口 service 填两个。

    socket 可以实现将同个端口的流量分别轮询到两个 service 吗

    Supplement 1  ·  Dec 24, 2022

    https://unrouted.io/ops/2017/04/26/multicore-twistd-with-systemd/

    搜到了如上连接。

    可以让同个服务实例启动多个进程并使用同个端口对外提供服务。

    systemctl enalbe --now [email protected]
    systemctl enalbe --now [email protected]
    systemctl enalbe --now [email protected]
    systemctl enalbe --now [email protected]
    

    性能上跟使用nginx 做upstream 有啥区别吗?比如健康检查?

    Supplement 2  ·  Dec 24, 2022


    实际测试并没有生效。

    测试的 http 访问 pid 始终是最先启动的 PID 。
    3 replies    2022-12-25 00:09:15 +08:00
    ToBeHacker
        1
    ToBeHacker  
       Dec 25, 2022
    你都打到本机了还做什么 lb 啊
    dzdh
        2
    dzdh  
    OP
       Dec 25, 2022
    @ToBeHacker 多核利用不到位的可以开多个进程绑定同一个端口对外服务
    ToBeHacker
        3
    ToBeHacker  
       Dec 25, 2022
    此外你的 server 创建时在 bind 之前需要手动通过系统调用 setsocketops SO_REUSEPORT 才行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2620 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:31 · PVG 18:31 · LAX 03:31 · JFK 06:31
    ♥ Do have faith in what you're doing.