V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dzdh
V2EX  ›  Linux

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

  •  
  •   dzdh · 2022-12-24 15:20:26 +08:00 · 2217 次点击
    这是一个创建于 482 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  2022-12-24 16:01:36 +08:00

    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 有啥区别吗?比如健康检查?

    第 2 条附言  ·  2022-12-24 18:34:54 +08:00


    实际测试并没有生效。

    测试的 http 访问 pid 始终是最先启动的 PID 。
    3 条回复    2022-12-25 00:09:15 +08:00
    ToBeHacker
        1
    ToBeHacker  
       2022-12-25 00:00:56 +08:00
    你都打到本机了还做什么 lb 啊
    dzdh
        2
    dzdh  
    OP
       2022-12-25 00:04:02 +08:00
    @ToBeHacker 多核利用不到位的可以开多个进程绑定同一个端口对外服务
    ToBeHacker
        3
    ToBeHacker  
       2022-12-25 00:09:15 +08:00
    此外你的 server 创建时在 bind 之前需要手动通过系统调用 setsocketops SO_REUSEPORT 才行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1773 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:29 · PVG 00:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.