[C10K] TCP REUSEPORT

概述

SO_REUSEPOR这个socket选项可以让你将多个socket绑定在同一个监听端口,然后让内核给你自动做负载均衡,将请求平均地让多个线程进行处理。

安全性考虑

为了避免hijacking即恶意用户通过监听相同的端口来获取用户信息
  • 第一个进程必须enable了这个选项之后,后续的进程才可以通过enable这个选项将socket绑定到同一个端口上;
  • 绑定到同一个端口的进程的effective user id必须一致;

在没有SO_REUSEPORT的年代

  • 派一条线程专门进行accept,获取socket后分派给worker线程。这种方法使得进行accept的线程成为了单点,容易成为性能的瓶颈;
  • 多个线程同时进行accept。这种方法的问题是每一个线程accept成功的概率不均匀,导致负载不均衡;

https://www.jianshu.com/p/37216e299bff
https://lwn.net/Articles/542629/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值