首页 理论教育高可用访问架构问题难题破解

高可用访问架构问题难题破解

【摘要】:现有的高可用访问方案大多是基于主机实现的解决方案,例如Heartbeat、Corosync、Keepalived等。图2基于主机的高可用实现原理图高可用核心功能通过前端的代理主机进行实现。该类实现方式能够达到高可用访问的效果,不过存在如下的不足:功能模块混杂,实现复杂度高。高可用代理主机同时实现了心跳健康监测与网络报文地址转换的功能。相比于直接应用专业的网络设备进行这类操作,其稳定性与吞吐性能必然会有所欠缺。

现有的高可用访问方案大多是基于主机实现的解决方案,例如Heartbeat、Corosync、Keepalived等。其通常的实现方式如图2所示。

图2 基于主机的高可用实现原理图

高可用核心功能通过前端的代理主机进行实现。当客户端的访问报文到达时,前端代理机将报文中的虚拟外部访问地址转换为内部活动主机的实际地址,并重新对访问报文进行封装,随后通过网络设备转发报文;当内部节点返回报文时,代理机再进行反向的地址转换与加解封装操作,并将报文传递至客户端。

与此同时,前端代理机还需要定时对资源池中的节点进行心跳健康监测。当发现主节点宕机时,代理机需要选择其余的备用机作为新的活动节点,并更新转发表项,以便之后到达的报文能够及时进行切换。(www.chuimin.cn)

该类实现方式能够达到高可用访问的效果,不过存在如下的不足:

(1)功能模块混杂,实现复杂度高。高可用代理主机同时实现了心跳健康监测与网络报文地址转换的功能。而后者属于纯网络层面的操作,应当通过专业的网络设备实现更为合适。

(2)前端代理主机存在单点失效的风险:所有的外部访问报文在到达网络转发设备之前必须首先经过前端代理主机进行地址转换,一旦前端代理主机宕机,则整个系统都将停止工作。

(3)性能问题。该类方案中,每个主数据流的进出都将通过代理主机进行网络报文地址的转换、加解封装以及反向代理等网络层面的操作。相比于直接应用专业的网络设备进行这类操作,其稳定性与吞吐性能必然会有所欠缺。