fast known when vm/docker failover to another machine (Linux exp)

fast known when vm/docker failover to another machine (Linux exp)

我们在使用VM或DOCKER环境时, 如果VM或DOCKER发生failover, 转移到其他宿主机运行后,
原来APP和Server建立的TCP会话怎样才能快速的感知并重新和新的Server建立TCP会话呢?
假设结构如下 : 
fast known when vm/docker failover to another machine (Linux exp) - 德哥@Digoal - PostgreSQL research


假设APP使用主机名连接Server, 比较靠谱的是使用DNS做这类解析.
当vm/docker failover后, Server的IP可能发生变化, 也可能不发生变化. 
如果vm/docker ip发生变化, 势必设计到DNS的变更, 那么为了快速的解析到正确的IP, DNS的TTL不能太大.
如果vm/docker ip不发生, 那么不需要变更DNS, 所以DNS TTL无所谓.
另一方面, TCP会话断开后, app要迅速的感知, 除了应用层自己做心跳以外(这里假设APP没有心跳功能), 可以依靠TCP的心跳.
[root@150 ~]# sysctl -a|grep keepa
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75

缩短这些心跳值, linux 内核会处理会话的状态.
fast known when vm/docker failover to another machine (Linux exp) - 德哥@Digoal - PostgreSQL research


1. app连接主机名, 从DNS解析VM/DOCKER IP
2. vm/docker container failover to another machine
3.1. when vm/docker ip changed, 修改DNS (需快速修改)
3.2. app等待tcp会话超时, 或应用层感知  (需快速超时)
3.3. 等待DNS TTL超时, 才能解析主机名到新的IP地址,   (需快速超时)
3.4. APP连接到新的地址

4.1 when vm/docker ip unchanged
4.2. app等待tcp会话超时, 或应用层感知  
(需快速超时)
4.3app连接主机名, 从DNS解析VM/DOCKER IP

[参考]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109109.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月13日 上午11:00
下一篇 2021年9月13日 下午12:00


相关推荐

  • docker疑难杂症:docker命令Tab无法自动补全[通俗易懂]

    docker疑难杂症:docker命令Tab无法自动补全[通俗易懂]今天在敲命令时,发现docker无法自动补全镜像名和其他参数,这样使用效率大大降低,然后百度找方法,下面是解决方法一、安装bash-completeyuminstall-ybash-completion二、刷新文件source/usr/share/bash-completion/completions/dockersource/usr/share/bash-completio…

    2022年5月13日
    318
  • docker部署Discuz论坛

    docker部署Discuz论坛

    2021年5月29日
    159
  • linux卸载docker

    linux卸载docker查看 docker 运行状态 systemctlsta 如果显示 active running 状态 则表示 docker 是运行状态 需要执行关闭命令 systemctlsto 查看 yum 安装的 docker 文件包 yumlistinsta grepdocker 查看 docker 相关的 rmp 源文件 rpm qa grepdocker 删除所有安装的 docker 文件包

    2026年3月26日
    0
  • docker的网络_docker网络模式详解

    docker的网络_docker网络模式详解1.Docker网络模式Docker默认提供了3种网络模式,生成容器时不指定网络模式下默认使用bridge桥接模式。使用命令查看当前Docker所有的网络模式。[root@hahadocker_web]#dockernetworklsNETWORKIDNAMEDRIVERSCOPEaa8a26ae1484bridgebridgelocal62cd016ed66ahosthostlocalfc650e2

    2025年6月18日
    5
  • docker搭建kafka集群「建议收藏」

    docker搭建kafka集群「建议收藏」docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    51
  • docker安装elasticsearch 7.6.2「建议收藏」

    docker安装elasticsearch 7.6.2「建议收藏」小伙伴们,你们好呀!我是老寇!安装elasticsearch的教程数不胜数,本文的安装方式是经过自己测试的,因此分享给有需要的小伙伴,一来是避免小伙伴少走弯路,二来方便后面知识的整合。本文是基于ES7.6.2的版本进行安装的,话不多说,我们开始吧。目录一、提前条件二、安装过程1.拉取镜像2.启动容器3.配置文件4.设置密码5.退出容器6.重启容器7.谷歌插件一、提前条件谷歌插件:elasticsearch-head服务器:centos7.5(

    2022年6月6日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号