热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

主备ld之间的状态同步

文章标题:主备ld之间的状态同步。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  公司的一业务使用的是长连接的tcp协议(就算在没有业务数据包交互的情况下, 每隔n秒c/s间都会有keepalive包传递), 使用lvs作接入层的负载均衡, ld通过heartbeat做双机热备, 主备ld之间因为只涉及到公网ip的漂移, 所以没有使用ldirectd来重构ipvs表, 而是直接使用自己写的脚本来重构备机上的ipvs表。 所以haresoucre的配置很简单:master_node_name  public_ip  ipvs_shell。

  在实际的运营过程中, 由于是长连接业务, 且为了保证更好的用户体验, 我们决定把主备ld之间的状态同步也加上, 所谓的状态同步, 就是ld会维护一张连接跟踪表(connection tracking table), 把每个连接的实时状态都保存在这张表里面。 要做到主备ld之间的这张连接跟踪表的同步, 需要在主备ld上分别启动一个内核守护线程, 通过广播的方式来同步数据。

  主ld:

  ipvsadm --start-daemon=master --mcast-interface=eth1

  备ld:

  ipvsadm --start-daemon=backup --mcast-interface=eth1

  在主备ld上分别执行这两个命令后, 可以在发现备ld上有个224.0.0.81:8848 listen的内核守护线程, 用来接收从主ld发过来的广播包。 所以, 要记得把防火墙的udp协议的8848端口打开, 不然同步不了, 可以在备ld上通过ipvsadm -Lnc看是否有连接同步过来。

  另外, 在实际的运营过程中还发现, 主备ld之间是怎么触发这种同步的呢?

  一是新的连接, 不管怎么样, 都会同步过去,

  二是对于已经存在的连接, 如果有足够的数据量在这个连接上传送, 在备ld上的expire time即将到期/或者已经到期的时候, 主ld会把这份已经存在的连接再次同步到备ld

  另外的是, 一个老的连接, 一直存在, 但是备机上的expire time已经到期了(主备上的expire time分别有主备机维护)还发现跟这个连接上的传递数据量有关系(就是要数据量要达到一定的阀值, 才会触发), 如果c/s之间一直没有业务数据, 仅仅只有每n秒传递的心跳数据(也就是说没有达到触发的阀值), 会发现备ld上的连接跟踪表里已经没有这份数据。

  在正常业务数据的情况:

  idle的情况(只有keepalive包)


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 介绍一款好用的内网穿透工具FRP
    本文介绍了一款好用的内网穿透工具FRP,它是一个使用Go语言开发的高性能的反向代理应用。FRP支持多种协议类型,并且可以根据域名进行路由转发。 ... [详细]
  • 1、Ipv4只能用于内网,外网只能用2、DNS:把域名解析成ip地址3、MAC地址就是物理地址(网卡序列号)   IP地址:电脑序列号4、不同电脑,微信之间互相通信,靠的是端口;  ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • slmp协议和mc协议区别_TCP协议与UDP协议的区别
    TCP协议和UDP协议TCPIP协议是一个协议簇。里面包括很多协议的,UDP只是其中的一个,之所以命名为TCPIP协议,因 ... [详细]
  • UDP千兆以太网FPGA_verilog实现(四、代码前期准备UDP和IP协议构建)
    UDP:userDatagramprotocol用户数据报协议无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC76 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
手机用户2502929821
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有