了解了全站加速的方式,我们进入下一阶段的讨论:我们在运行商处租了一个公网IP地址,怎样使用才能够最合理?
什么是四层负载均衡?
基于IP和端口,利用某种算法均匀地将报文转发给后端服务器,令其均匀地落在服务器上。详细内容可以尝试点击此处,是我找的一些资料。 示意图如下,来自百度:
相关算法
- RR轮询: Round Robin,将所有的请求平均分配给每个真实服务器RS
- 加权RR轮询: 给每个后端服务器一个权值比例,将请求按照比例分配
- 最小连接: 把新的连接请求分配到当前连接数最小的服务器
- 五元组hash: 根据sip、sport、 proto、 dip、 dport对静态分配的服务器做散列取模缺点: 当后端某个服务器故障后,所有连接都重新计算,影响整个 hash 环
- 一致性hash:出现故障,其余服务器上的连接不受影响
RS怎么知道真实的CIP? 通过TCP/opinion字段传递,之后经过特殊内核模块反解,示意图来自课程。
特点
- 大部分都是过 dpdk 技术实现,技术成熟,大厂都在用
- 纯用户态协议栈,kernel bypass,消除协议栈瓶颈
- 无缓存,零拷贝,大页内存(减少 cache miss)
- 仅针对4层数据包转发,小包转发可达到限速,可承受高 cps
网络架构示意图来自课程: