博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lvs 负载均衡遇到的一个问题. (问题解决) 
阅读量:2496 次
发布时间:2019-05-11

本文共 916 字,大约阅读时间需要 3 分钟。

我们在数据库前面加了lvs  + keepalived  做vip 切换, 实现数据库ha . 
整套流程也是很成熟的了. 
近期遇到了一个问题.  
lvs 的 master  与backup 节点之间 vip 可以自由的飘来飘去 , 对应用端是透明的. 
但是最近遇到一个问题 ,  vip 在飘逸后,  一部分应用是可以访问数据库的,一部分应用是无法访问数据库的,报错就是网络超时. 
应用服务器也ping 不通 vip  ,  做过一次抓包分析, 发现应用服务器发出的包的目标地址是错的. 
由此怀疑  vip 飘逸后, vip 的arp 广播包 可能没有到达应用服务器所在的网段.
由于局域网 比较大, 分了几个网段. 
目前还不清楚 , 是什么原因导致的  arp 广播包没有到达远端. 
这个问题可以重现, 但是无法模拟, 只能等,  目前真正的原因也没有找到. 
---------------------------------------
问题终于解决了.  lvs 在发生vip 切换后,悔自动发送arp 广播. 
 在实际操作中,我们发现 有时候(偶尔) arp 广播没有被交换机学习到. 
自己在代码里加了一个arping 的命令手工发送arp 广播,由于同事的代码有一定的逻辑问题, 在vip 飘逸后,导致arping 命令变成里的damon 进程, 会一直发送完指定个数的arp包. 
这个时候, vip 已经漂移到另一个lvs 机器上,那个机器也会发送arpping 广播包, 这个两个进程会同时发送 , 直到第一个daemon 进程 完成后,系统才会正常.
为什么不会总是出现呢, 因为有时候 arping 代码会在随着vip 的漂移会成功推出,有时候又无法被kill 变成daemon 进程了. 
至此问题原因找到, 我们优化了这部分代码的业务逻辑.问题解决. 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-2058966/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-2058966/

你可能感兴趣的文章
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>
Could not find a storyboard named 'Main' in bundle NSBundle
查看>>
CocoaPods安装和使用教程
查看>>