您的位置:首页 > 科技 > IT业 > 网络广告营销的案例_一般大概需要多少钱_优化大师怎么卸载_网络营销技巧培训

网络广告营销的案例_一般大概需要多少钱_优化大师怎么卸载_网络营销技巧培训

2025/4/20 15:04:25 来源:https://blog.csdn.net/u013106652/article/details/147095357  浏览:    关键词:网络广告营销的案例_一般大概需要多少钱_优化大师怎么卸载_网络营销技巧培训
网络广告营销的案例_一般大概需要多少钱_优化大师怎么卸载_网络营销技巧培训

本文深入解析了Keepalived技术,阐述其基于VRRP协议实现高可用的核心功能,包括虚拟路由器冗余、健康检查、负载均衡集成及脚本执行与通知。同时,设计了Nginx高可用方案,涵盖双机主从、主主及多点集群模式,分析其优缺点。最后通过Docker环境实践,展示了高可用Nginx服务的部署与验证过程,为构建稳定网络服务架构提供参考。

一、Keepalived 技术解析

1.1 Keepalived 核心功能

Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)的开源软件,最初是为LVS(Linux Virtual Server)设计的,用于实现高可用功能。随着发展,它的应用范围不断扩大。其核心功能主要有以下几方面:

1.1.1. VRRP协议实现

  • 虚拟路由器冗余:Keepalived利用VRRP协议创建虚拟路由器。多个物理服务器可组成一个虚拟路由器组,拥有一个共同的虚拟IP地址(VIP)。在这个组里,会选举出一个主路由器(Master),其余的作为备份路由器(Backup)。主路由器负责接收发往VIP的流量,备份路由器则在主路由器出现故障时接管其职责。

  • 主备切换机制:主备路由器通过VRRP报文进行通信,主路由器会周期性地发送通告消息。当备份路由器在一定时间内未收到主路由器的通告消息,就会认为主路由器出现故障,然后根据优先级选举出新的主路由器,并将VIP转移到新的主路由器上,从而确保服务的持续可用。

1.1.2. 健康检查

  • 多种检查方式:Keepalived支持多种健康检查方法,涵盖了对服务器基础网络连通性、服务端口状态以及自定义脚本执行结果的检查。可以通过ICMP(Internet Control Message Protocol)检测服务器的网络连通性;使用TCP连接检查特定服务端口是否开放;还能执行自定义的脚本检查应用程序的运行状态。

  • 故障处理:如果在健康检查过程中发现某个服务器出现故障,Keepalived会将其标记为不可用,并根据配置采取相应的措施,如将其从负载均衡器的后端服务器列表中移除,或者触发主备切换操作。

1.1.3. 负载均衡集成

  • 与LVS集成:Keepalived最初的设计目的就是与LVS配合使用,实现负载均衡器的高可用性。Keepalived负责监控LVS负载均衡器的状态,当主负载均衡器出现故障时,会自动将VIP切换到备份负载均衡器上,确保流量能够继续被正确分发到后端服务器。

  • 负载均衡策略辅助:虽然Keepalived本身不直接实现负载均衡算法,但它可以辅助调整负载均衡器的配置。例如,根据健康检查的结果,动态地调整后端服务器在负载均衡器中的权重,使得性能更好、状态更稳定的服务器能够承担更多的流量。

1.1.4. 脚本执行与通知

  • 自定义脚本执行:Keepalived允许用户配置在特定事件发生时执行自定义脚本。比如,在主备切换前后执行脚本,用于清理缓存、重新配置服务或者发送通知等操作。

  • 事件通知:当Keepalived检测到故障、进行主备切换等事件发生时,可以通过配置发送通知,如发送邮件、短信或者调用API接口,及时告知管理员系统的状态变化。

1.2 VRRP 协议工作原理

VRRP(Virtual Router Redundancy Protocol)协议的工作原理是在多个路由器之间建立一个虚拟路由器,通过选举机制确定主路由器和备份路由器,以实现网络的冗余和高可用性。以下是其详细工作原理:

1.2.1. 虚拟路由器和虚拟IP地址

  • 一组路由器(至少两个)共同组成一个虚拟路由器,这个虚拟路由器有一个唯一的虚拟IP地址和虚拟MAC地址。虚拟IP地址是用户设备默认网关的地址,用户设备将数据包发送到这个虚拟IP地址,而虚拟MAC地址则用于在局域网中标识虚拟路由器。虚拟路由器通过虚拟IP地址对外提供服务,用户设备将数据包发送到虚拟IP地址,由虚拟路由器进行转发。

1.2.2. 选举机制

  • 优先级设定:每个参与VRRP的路由器都有一个优先级,范围是0到255。优先级越高,成为主路由器的可能性越大。可以通过配置来设置路由器的优先级,通常情况下,性能较好或更可靠的路由器会被设置为较高的优先级。
  • 选举过程:在初始化阶段,所有路由器都会发送VRRP通告消息,其中包含自己的优先级等信息。通过比较优先级,优先级最高的路由器将被选举为主路由器,其他路由器则成为备份路由器。如果多个路由器的优先级相同,则IP地址较大的路由器将成为主路由器。

1.2.3. 主备路由器职责

  • 主路由器:主路由器的主要职责是处理发往虚拟IP地址的数据包,将这些数据包转发到相应的目标网络。同时,主路由器会定期发送VRRP通告消息,告知备份路由器自己的运行状态。
  • 备份路由器:监听主路由器发送的VRRP通告消息,以了解主路由器的状态。在主路由器正常工作时,备份路由器处于待命状态,不处理发往虚拟IP地址的数据包。当备份路由器在一定时间内没有收到主路由器的通告消息时,就会认为主路由器出现故障,进而启动选举过程,重新选举主路由器。

1.2.4. 抢占与非抢占模式

  • 抢占模式:当一个优先级更高的路由器加入到VRRP组中时,它会立即向其他路由器发送VRRP通告消息,声明自己的优先级更高,从而抢占主路由器的角色。这种模式可以确保高优先级的路由器能够及时成为主路由器,提供更好的服务。
  • 非抢占模式:在非抢占模式下,即使有优先级更高的路由器加入,只要当前主路由器正常工作,新加入的路由器就不会抢占主路由器的角色。只有当主路由器出现故障,导致备份路由器重新选举时,优先级更高的路由器才有可能成为主路由器。

1.2.5. 定时器设置

  • 通告间隔定时器:主路由器按照一定的时间间隔发送VRRP通告消息,这个时间间隔通常可以配置,默认值是1秒。通过调整通告间隔,可以在网络稳定性和故障检测速度之间进行权衡。较短的通告间隔可以更快地检测到主路由器故障,但会增加网络带宽占用;较长的通告间隔则可以减少网络带宽占用,但可能会导致故障检测时间延长。
  • 失效定时器:备份路由器在等待主路由器通告消息时,会启动一个失效定时器。如果在失效定时器超时之前没有收到主路由器的通告消息,备份路由器就会认为主路由器出现故障,从而触发选举过程。失效定时器的时长通常是通告间隔的倍数,默认情况下是通告间隔的3倍。

通过以上工作原理,VRRP协议能够确保在网络中的路由器出现故障时,能够快速地进行主备切换,保证网络的连续性和稳定性,为用户提供可靠的网络连接。

二、Nginx 高可用方案设计

2.1 双机主从模式

  • 模式介绍:在双机主从模式中,有两台服务器,一台作为主服务器(Master),负责处理所有的业务请求,另一台作为从服务器(Slave),实时同步主服务器的数据。当主服务器出现故障时,从服务器会自动接管主服务器的工作,保证业务的连续性。
  • 优点
    • 数据一致性高:从服务器实时同步主服务器的数据(基于异步同步时可能存在毫秒级延迟),能保证数据的一致性和完整性。
    • 实现简单:架构相对简单,易于理解和部署,对硬件要求不高,成本较低。
    • 故障转移快:当主服务器出现故障时,从服务器能快速接管,业务中断时间较短。
  • 缺点
    • 资源利用率低:从服务器在正常情况下处于待命状态,只有主服务器处理业务,资源未得到充分利用。
    • 主服务器压力大:所有业务请求都由主服务器处理,可能会成为性能瓶颈。
    • 单点故障风险:虽然有从服务器,但如果主服务器的故障导致数据丢失,可能会影响业务。

2.2 双机主主模式

  • 模式介绍:双机主主模式中,两台服务器都是主服务器,都可以处理业务请求。它们之间相互监控,实时同步数据。当一台服务器出现故障时,另一台服务器会承担起所有的业务处理工作。
  • 优点
    • 资源利用率高:两台服务器都能处理业务,提高了硬件资源的利用率。
    • 性能较好:业务请求可以分担到两台服务器上,提升了系统的整体性能和处理能力。
    • 可靠性高:两台服务器互为备份,任何一台出现故障,另一台都能继续提供服务,减少了单点故障的风险。
  • 缺点
    • 数据同步复杂:两台服务器都要进行数据的写入和同步,数据同步机制相对复杂,可能会出现数据冲突,需要更复杂的处理来保证数据一致性。
    • 成本较高:需要两台性能较好的服务器,硬件成本较高。
    • 管理难度大:涉及到两台服务器的配置和协调,管理难度相对较大。

2.3 多点集群模式

  • 模式介绍:多点集群模式是由多个节点(服务器)组成的集群系统,这些节点通过网络相互连接,共同处理业务请求。集群中有一个或多个管理节点,负责监控和管理整个集群的运行状态,其他节点作为工作节点,分担业务处理任务。当某个节点出现故障时,管理节点会自动将其任务分配到其他正常节点上,实现负载均衡和高可用性。
  • 优点
    • 高可扩展性:可以根据业务需求方便地添加节点,扩展系统的处理能力和存储能力。例如,当业务量增加时,可以简单地添加更多的工作节点,管理节点会自动将其加入到集群中,实现负载均衡和高可用性。
    • 高可用性:多个节点相互备份,即使多个节点出现故障,只要还有部分节点正常工作,系统就能继续运行,可靠性极高。
    • 负载均衡:能够将业务请求均匀地分配到各个节点上,避免单点出现过载,提高系统整体性能。
  • 缺点
    • 架构复杂:需要复杂的网络配置和管理,由于涉及到多个节点的协调和通信,因此部署和维护难度较大。
    • 成本较高:需要多个服务器以及相应的网络设备,软件授权等成本也较高。
    • 数据一致性挑战大:因为多个节点同时处理数据,每个节点都有可能对数据进行修改,这就需要采用分布式事务等复杂技术来解决数据一致性问题。

三、Docker 环境实践

3.1 实验环境准备

  • 安装docker环境
  • 下载实战例子:https://gitee.com/bonaparte/nginx_keepalive.git

3.2 主从模式部署

构建相关镜像并启动容器命令如下:

# 执行如下命令构建相关镜像
docker-compose -f ./docker-compose.yml up --build
# 后台启动容器
docker-compose -f ./docker-compose.yml up -d

3.3 高可用验证测试

主节点URL访问测试

# 主节点暴露端口为 7500
curl http://localhost:7500/

从节点URL访问测试

# 从节点暴露端口为 7501
curl http://localhost:7501/

高可用URL访问测试

# 虚拟IP(VIP)暴露端口为 7502
curl http://localhost:7502/

该命令用于模拟主节点故障,暂停主节点容器。

# 模拟主节点故障
docker pause   nginx_keepalive-nginx_master-1
# 查看高可用URL访问测试结果
curl http://localhost:7502/
# 查看主节点URL访问测试结果
curl http://localhost:7500

该命令用于模拟主节点故障恢复,恢复主节点容器的运行。

# 模拟主节点故障恢复
docker unpause nginx_keepalive-nginx_master-1
# 查看高可用URL访问测试结果
curl http://localhost:7502/
# 查看主节点URL访问测试结果
curl http://localhost:7500

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com