如何将服务开放给用户
网络接入
- Host管理
- DNS
- 对称加密,非对称加密,SSL
- 静态加速CDN,动态加速DCDN
负载均衡
负载均衡是现代网络架构中至关重要的一环,它通过合理分配请求流量,实现服务器资源的高效利用,提升系统的可用性和性能。在不同层级和情景下,负载均衡有着不同的实现策略和调度算法
-
4层负载均衡
基于IP+端口,利用某种算法将保温转发给某个后端服务器,实现负载均衡地落在后端服务器
4层负载均衡依赖于IP地址和端口信息,在传输层上进行流量分发。它通过一定的算法,将传入的请求流量智能地导向后端服务器,以实现负载均衡,避免某些服务器过载,同时提高整体性能。这一层面的负载均衡拥有一些关键功能:
- 解耦vip和rs: 通过负载均衡,将前端的虚拟IP(VIP)和后端的真实服务器(RS)解耦,使得前端用户无需关心具体的服务器细节,提高了系统的可维护性和灵活
- NAT:负载均衡可以在网络传输过程中进行NAT操作,将内部私有IP转换成公有IP,增加了网络的安全性和隐私性。
- 防攻击:syn proxy:在负载均衡中,利用TCP SYN代理技术可以有效地防范SYN Flood攻击,维护服务器的稳定性和可靠性。
-
常见的调度算法
- RR轮询:Round Robin,将所有的请求平均分配到每个真实的服务器RS
- 加权RR轮询:给每个后端服务器一个权值比例,将请求按照比例分配
- 最小连接:把新的连接请求分配到当前连接数最小的服务器
- 五元组hash:根据sip,sprot,proto,dip,dport对静态分配的服务器做散列取模(缺点:当后端某个服务器故障后,所有连接都重新计算,影响整个hash环)
- 一致性hash:之影响故障服务器上的连接session,其余服务器上的连接不受影响
-
常见的实现方式
FULLNAT
FULLNAT 是一种常见的网络地址转换技术,用于将传入的请求流量进行双向的IP和端口转换,以实现网络连接的安全性和可用性。在负载均衡中,FULLNAT 技术可以应用于不同的层级,从而在不同场景下确保网络传输的稳定性,同时提供一定程度的隐私保护。
-
4层负载均衡特点
- 大部分都是通过dpdk技术实现,技术成熟,大厂都在用
- 纯用户态协议栈,kernel bypass,消除协议栈瓶颈
- 无缓存,零拷贝,大页内存(减少cache miss)
- 仅针对4层数据包转发,小包转发可达到限速,可承受高cps
-
Nginx 反向代理,支持7层负载均衡
- 模块化设计,较好的扩展性和可靠性,性能比Apache好
- 基于master/worker架构设计
- 支持热部署;可在线升级
- 不停机更新配置文件,更换日志文件,更新服务器二进制
- 较低的内存消耗:1w个keep-alive连接模式下的非活动连接仅消耗2.5M内存
- 事件驱动:异步非阻塞模型,支持aio,mmap(内存映射)