《负载均衡》读书笔记(21):其他主要功能
一、使用SNAT隧道服务无外网出口的IDC
网络隧道技术是指利用一种网络协议来传输另一种网络协议,它是一种数据包封装技术,把原始数据包作为封装在另一个数据包的数据净荷(Data Payload)进行传输。
使用网络隧道技术的原因是为了实现在不兼容的网络上传输数据,或者在不安全的网络上提供一个安全路径。
二、服务隔离和安全控制
当IDC内的一个服务出现异常或受到攻击时,不能影响同IDC内的其他服务。这就要求对IDC内的不同业务之间进行服务隔离。
负载均衡器可以对其接入的业务设置流量配额、连接数配额、并发量配额等资源利用指标,当一个业务使用的资源超过其分配的配额后,负载均衡器会采用对该服务降级的方式。
安全问题是网络服务一个永无止境的讨论话题,DDoS攻击、ARP欺诈、脚本攻击、嗅探扫描、Flood攻击等,网络攻击真可谓花样繁多、不胜枚举。
通过在负载均衡器上配置策略,可以保护其后端的应用服务免受网络攻击的破坏。
通过黑名单机制阻止恶意用户的访问、通过白名单机制实现服务访问授权、通过Syn-proxy机制阻止Syn-flood攻击、通过SSL加密保护数据安全、通过流量分析和清洗抵抗DDoS攻击等。
《负载均衡》读书笔记(22):高可用性
负载均衡器本身的一个重要作用就是提供高可用性。另外,其本身也需要是一个高可用的系统。
一、使用Keepalived做健康检查
Keepalived的健康检查可以工作在网络层、传输层或应用层。
即它可以发送ICMP探测包、TCP/UDP健康检查报文包、HTTP请求来进行健康检查。
当发现返回的数据不是自己期望的值时,就会判断后端服务器已经不再健康,需要从集群中摘除。
二、使用VRRP实现主备
Keepalived很重要的一个功能就是可以实现主备模式的集群化四层负载均衡器。
我们将两台服务器配置成主从模式。即一台是MASTER,另一台是BACKUP。
(1)MASTER会不停地往外发送虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP)的多播信号
(2)BACKUP接收到这个多播信号,并判断这个虚拟路由器标识符(Virtual Router ID,VRID)属于自己的组时,就会强制让自己静默(自己是指BACKUP,不要有接管VIP这类的行为)。
(3)当BACKUP接收不到正常的VRRP多播信号时,就会认为MASTER已经出现故障,这时BACKUP就会切换成MASTER来接管VIP,并发送免费ARP报文(gratuitousARP),同时发出VRRP数据包。
(4)MASTER服务器重新恢复服务,发送出VRRP数据包后,BACKUP机器就会发现自己的优先级没有MASTER发出的VRRP优先级高,会再次把自己设置为BACKUP,并摘除自己的VIP。
《负载均衡》读书笔记(23):高可用性(续)
三、使用ECMP实现集群化
主备模式的瓶颈是一个VIP最多只能有一台机器的吞吐量。
像后端服务器一样横向扩展负载均衡集群,我们采用ECMP来实现VIP的分流,依托的软件就是Quagga。
ECMP(Equal-Cost Multi Path Routing,等价多路径路由协议)主要应用在路由策略上。
OSPF是一个支持ECMP的内部网关协议,它是一种动态的路由协议,通过在同网段内传输一个组播的数据包来让所有的路由器感知自己这个邻居节点。
Quagga是一款集成了OSPF、RIP及BGP在内的多种路由协议的软件。
四、使用网卡绑定扩展单网卡流量
网卡绑定是一种常用的技术。可以将多张网卡绑定成一个虚拟网卡。网卡绑定有不同的绑定模式,通常需要交换机配合。
《负载均衡》读书笔记(24):高可扩展性
可扩展性直接影响业务的服务能力和应用规模。当业务容量达到目前系统的容量极限时,我们通常有两种选择:
一种是迁移业务到性能更好、容量更大的系统中;另一种是扩容当前系统的容量。
如果服务具备高扩展能力,我们就能很容易地通过平滑扩容的方式提高当前系统的容量。
一、扩展负载均衡器
(1)通过DNS技术扩展负载均衡器
DNS服务采用分层的管理方式,可以按照地域、运营商分层配置和查询,并通过缓存技术保证并发处理性能。
在一个调度区域内,如果DNS记录的业务域名关联了多个IP地址,在用户请求DNS域名查询时,DNS可以通过轮询的策略从这些关联的IP地址中选择其中一个IP地址来响应用户的查询请求。
我们可以利用DNS分布式服务和轮询查询机制扩展负载均衡器。
【优点】
通过DNS技术扩展负载均衡器的优点是能对业务流量按区域和运营商进行灵活分配。
【缺点】
但每次扩展负载均衡器都需要占用一个IP地址,且其中一个负载均衡器发生故障时要经过DNS缓存老化时间后才能摘除。
我们一般使用DNS服务对业务进行跨区域、运营商的分布式部署和异地容灾
(2)通过ECMP技术扩展负载均衡器
使用ECMP实现集群化除了能提高负载均衡服务的高可用性,还能赋予负载均衡服务可扩展能力。
使用ECMP技术扩展负载均衡器的方法通常应用于IDC内部多个负载均衡器的水平扩展。
这种方法使用等价路由原理把业务的VIP通过多台负载均衡器发布到外网,每个服务只需要占用一个IP地址,而且扩展方法简单、方便,所以被广泛应用于IDC内部负载均衡器和业务的部署。
(3)通过负载均衡技术扩展负载均衡器(多级负载均衡)
负载均衡器的一种常见部署方式是不同类型的负载均衡器级联部署,这种部署方式把一种负载均衡器作为另一种负载均衡器的后端服务器,利用前者的负载均衡能力实现后者的可扩展性和高可用性。
虽然通过负载均衡集群扩展负载均衡器的方式增加了一层负载均衡转发,但四层负载均衡器和七层负载均衡器功能的互补作用可以增加业务配置的灵活性和负载均衡集群的利用率。
由于四层负载均衡器是基于网络层协议的IP地址和传输层协议的端口信息工作的,性能远高于工作在应用层上的七层负载均衡器,因此将七层负载均衡器作为四层负载均衡器的后端服务器是合理的。
(4)通过Anycast技术扩展负载均衡器
使用Anycast技术可以实现把相同的业务VIP地址跨地域发布到不同的负载均衡集群上,不同用户的访问流量按照最优路径原则最终被路由到不同的负载均衡器上。
Anycast技术还只是主要应用于DNS服务、时间服务等无状态的业务上。
这种负载均衡器的扩展方案被广泛应用于七层负载均衡器的集群化部署中。
《负载均衡》读书笔记(25):高可扩展性(续)
二、扩展后端服务器
当负载均衡器需要扩展后端服务器(Real Server)时,我们如何把新的Real Server加入负载均衡转发列表中?
(1)配置文件重载机制(reload机制)
当需要扩展Real Server时,首先需要把新的Real Server配置写入相应的配置文件,然后在运行的负载均衡服务不重启、不中断的前提下加载新的配置文件。
所以,我们需要一种平滑重启机制,使得负载均衡器在服务运行中重新加载配置文件而不影响业务流量的转发。
Keepalived和Nginx都采用SIGHUP信号重新加载更新后的配置文件。
我们可以重新定义守护进程的意义,利用SIGHUP信号通知守护进程重新读取配置文件,并将文件加载到内存中。
因此,对于使用配置文件管理的负载均衡配置,只需把扩展的Real Server更新到配置文件中,然后对负载均衡器进程发送SIGHUP指令即可。
(2)服务发现机制
服务发现机制广泛应用于微服务技术领域,用于解决在应用实例发生动态扩展、失败或升级时如何保证服务的可用性和一致性问题。
服务发现的核心是一个服务登记表,该表是一个包含所有可用服务实例网络地址的数据库。
当用户发起用户请求后,通过查询服务登记表获取一个可用的应用实例来处理用户请求。
利用服务发现机制还可以实现客户端负载均衡,即不需要使用服务器端的负载均衡器。
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777