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,所以响应包不需要做任何特殊处理。

  • 相关阅读:
    jQuery Mobile 总结
    妙味,结构化模块化 整站开发my100du
    详解使用icomoon生成字体图标的方法并应用
    Vue.js搭建路由报错 router.map is not a function,Cannot read property ‘component’ of undefined
    jquery 最全知识点图示
    图解Js event对象offsetX, clientX, pageX, screenX, layerX, x区别
    Oracle存储过程及函数的练习题
    SQL中IS NOT NULL与!=NULL的区别
    mysql字符集和排序规则
    一个web项目web.xml的配置中<context-param>配置作用
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/14955324.html
Copyright © 2011-2022 走看看