VIP的作用(虚拟ip)
它的作用主要是用于 负载均衡、故障切换等高可用性解决方案上;
比如用于访问一个vip 10.1.18.12,然后它负载均衡(这个规则可以配置)到两个实IP 10.1.18.14,10.1.18.15上(也可以一个vip只对一个实ip),
这样客户不需要知道它访问的具体服务的ip(就是反向代理)而是通过外层vip访问,万一10.1.18.14挂了,可以立刻通过vip的配置隔离掉10.1.18.14
,并在同一个网络里起一个新服务实例10.1.18.19加到vip里(这样就能快速处理问题,实现高可用);
vip和其对应的实ip可以不在同一个网段,但是肯定是要连通的(而且应该是默认连通,如同一个AZ下),否则快速隔离和起新的节点还得加个网络开通步骤(当然不绝对哈)。
vip的作用还包括机房搬迁,只要vip不变,后面的服务由机房A搬机房B用户是不需要做任何申请的;
之前自己以为域名能实现这个架构,后来发现域名只是客户端请求DNS(包括本地的hosts)得到对应的ip地址,然后再通过这个ip去发起请求(类似302返回),
因此是要求客户端和这个域名解析出的ip之间网络是连通的;而当往域名里加了新的ip,这个对用户是有感的,即用户要确保自己能连通这个新的ip;
所以域名只是ip的别名(可以是多个ip的别名,由客户端如操作系统去决定具体访问哪个ip),一个是正向代理,一个是反向代理;
VIP可以通过NLB实现(Network load balancer 负载均衡器),NLB是一种虚拟设备(但是可以简单的理解为类似F5一样的设备),也掌管流量分发(公网网关一般就会用类似NLB的技术);
要实现高可用,可以是DNS(域名)+VIP(如NLB支持实现)+具体服务的架构;
VIP还有vip漂移的概念,即vip所在的服务、硬件(vip本身也是需要物理设备承载的)出现故障,这个时候vip本身就已经无法访问(类似nginx无法访问,更何况后面的节点),
这个时候上层的负载均衡器能够感知到,自动将这个vip漂移到另外一个服务上(比如通过负载均衡器访问nginx1(假设访问地址是10.1.18.109),但是有个备选的nginx2平时没有流量,当nginx1挂了【模拟vip所在服务挂了】
上层负载均衡器感知到后自动将10.1.18.109的流量转发到nginx2上,这个就是vip漂移(10.1.18.109模拟vip))
具体怎么实现的,应该是vip上一层还有个类似vip的“软件、硬件”(最简单的实现就vip上层有个“路由器”,ip包(vip)到达“路由器”后,如果发现路由表里vip对应的主服务正常则发到该主服务上,如果异常则自动发到另外一个备服务上,而主服务、备服务本身又是一个反向代理,将流量反向代理到具体的实ip上)。
posted on 2023-06-09 14:59 Silentdoer 阅读(978) 评论(0) 编辑 收藏 举报