zoukankan      html  css  js  c++  java
  • 【IP】虚拟IP原理

    使用场景:

           当这台机器出现故障时,自动动态切换到另一台热备的机器

    高可用性HA(High Availability)

      指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。

      实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

    怎么实现故障检测的那?

          心跳,采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。

    怎么实现自动切换那?

          虚IP:何为虚IP那,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

    实现原理

      主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑 地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关 系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现 的关键。

      下边就是我电脑上的arp缓存的内容。

    (192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0
    (192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
    (192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0
    

      

      192.168.1.217、192.168.1.218是两台真实的电脑,

      192.168.1.217为对外提供数据库服务的主机。

      192.168.1.218为热备的机器。

      192.168.1.219为虚IP。

      大家注意红字部分,219、217的MAC地址是相同的。

      再看看那217宕机后的arp缓存

    (192.168.1.219) at 00:21:5A:DB:7F:C2 [ether] on bond0
    (192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
    (192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0 
    

      

    这就是奥妙所在。当218 发现217宕机后会向网络发送一个ARP数据包,告诉所有主机192.168.1.219这个IP对应的MAC地址是00:21:5A:DB:7F:C2,这样所有发送到219的数据包都会发送到mac地址为00:21:5A:DB:7F:C2的机器,也就是218的机器。

  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/itplay/p/11022852.html
Copyright © 2011-2022 走看看