欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于keepalived的同质客户端HA方案 博客分类: 原创 keepalivedHA同质客户端 

程序员文章站 2024-03-22 08:36:58
...

   =====先吐嘈======

周五我的一篇通过招聘简章的描述分析用人单位用人需求的文章。因为被误当作非法招聘而删除。

心里很不爽。

========下面是正文==========

        keepalived来做HA方案已经很成熟了,但基本都是对服务端做HA,比如Ngnix,通过服务端的冗余来消除单点故障。但也有很多场景需要对客户端做HA,比如最近工作就遇到了:

        各个省公司要给集团公司发送非常重要的实时告警数据,要求很高的及时性,并且不可重复发送,不可漏发。 同时要接受收集团下发数据。

        就这个需求,服务端接收集团数据使用keepaived+ngnix做HA。但客户端却遇到了麻烦:为避免重复发送,同一时刻只能有一个客户端给集团发告警。

       如果采用冷互备,同一时刻只启动一台客户机,VIP飘移时拉起Master主机的客户端进程,显得有些笨拙,实时性也很难满足要求。

       如果采用热互备,同时保证只有一台客户机工作,客户端就要实现复杂的分布式选举功能。用ZooKeeper的话,又觉得方案有些太重了。

 

       今天想到一个比较巧的方案,基于keepalived的VIP飘移,同时代码也容易理解和实现 。


基于keepalived的同质客户端HA方案
            
    
    博客分类: 原创 keepalivedHA同质客户端 
 如上图:

1: 每个客户启动后将获得一个唯一的ID ,如UUID .

2: 每个客户端开启一个监听端口Port。

3: 每个客户端持续的给VIP:Port发送{UUID}消息。接收到{UUID}的客户端,则说明是Master,如果该UUID与自己的UUID相同,开始给集团发送告警。

 

keepalived用来监视客户端的活跃状态。

 

  • 基于keepalived的同质客户端HA方案
            
    
    博客分类: 原创 keepalivedHA同质客户端 
  • 大小: 10.1 KB