zoukankan      html  css  js  c++  java
  • KeepAlived简介

    最近因为公司项目需要使用KeepAlived,所以正在学习KeepAlived。网上很多资料但是大多千篇一律,而且根本没有说清楚。所以自己整理了一下。

    首先,KeepAlived是一种负载均衡高可用方案或者说技术,更偏向于高可用。

    那么KeepAlived怎么实现的负载均衡和高可用呢?下面将详细说明

    一、负载均衡

    KeepAvlied的负载均衡其实是站在巨人的肩膀上,是基于LVS实现的。LVS全程linux virtual server即linux虚拟服务器。

    关于LVS的介绍,网上很多,

    个人的另一篇博客也有介绍LVS学习笔记

    这里就不多说了。

    二、高可用(这里指的是路由器高可用)

    KeepAlived的高可用是基于VRRP协议实现的,即虚拟路由冗余协议。简单介绍下VRRP

    其实从名称来看就大概能明白,冗余,也就是说要有多个路由器。这些路由器一起提供虚拟路由功能。

    即VRRP由一组真实的路由器组成,这些路由器分为一个master和多个backup,对外提供一个虚拟IP,平时由master来负责处理,master会发送组播给backup,当backup收不到master的组播后,会认为master已经宕机

    通过选举,根据VRRP的优先级(优先级相同选IP大的)从剩下的backup中选择一个成为新的master,接着对外提供服务。保证路由的高可用。

    到这里相信KeepAlived的原理已经介绍完了。

    简单说下KeepAlived内部组件

    core:用来监控checker和vrrp的

    checker:用来做心跳检测

    vrrp:实现vrrp

    最后说下KeepAlived的配置

    主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server

    global_defs全局配置,一般用来在配置发生切换时的告警设置

    static_ipaddress和static_routes,用来配置IP和路由的,一般服务器都由IP和路由了,一般不需要

    vrrp_xxx这些就是跟vrrp协议相关的配置,实现高可用的时候需要配置

    virtual_server跟LVS相关的配置,实现负载均衡的时候需要配置。

    总结下,global_defs一般都需要配置,配置项具体内容网上很多,不介绍了。static_xxx一般不用配置,如果需要使用KeepAlived的高可用特性的话,需要配置下vrro_instance以及vrrp_xx这些配置项

    如果要使用KeepAlived负载均衡特性的话,需要配置下virtual_server IP port,IP肯定是虚拟IP,port就看需要负载均衡的服务监听的端口号。

    仅使用高可用特性的话,不需要配置virtual_server。但是要求访问vip的端口号和真实服务器的端口号一致。个人感觉跟LVS的DR模式很类似,通过vrrp直接将vip的mac地址设置成master的mac地址,直接转给master,

    并且因为master绑定了vip,所以响应包不需要做任何特殊处理。

  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/14955324.html
Copyright © 2011-2022 走看看