背景
高可用、高并发的场景要求必须进行多应用的负载均衡处理
此时一个很重要的问题就是 应用服务器是否一致的一个检查。
正常情况下可能需要获取md5 然后进行计算,
或者是复制到相同机器上面进行 compare的对比。
但是这种处理方式往往费时费力。效率也慢。所以想一种快速比较的方法
简单思路
计划采用rsync的方式进行抽样对比,将不一样的文件挪到一个位置上面去。
使用rsync的远程对比分析功能。
脚本为:
rsync -rcn --out-format="%n" myapp/server/ root@10.xx.xx.xx:/myappmysql/server/ |grep -v "/$"|xargs -I{} rsync -R myapp/server/./{} myappdiff
注意要进行互信操作,如果有安全要求可以再互信之后清理掉。
本脚本按照 本地文件为蓝图, 跟远端服务器进行对比
想与本地文件不一致的部分挪到 myappdiff 目录里面去 待查。
可以使用 find myappdiff -iname "*.jar" |wc -l 的方式来判断是否有不同的jar包。
如果是前端, 可以选择比如 js,html 等文件进行比较
可以忽略比如 log。配置文件方面的差异。
也可以进行配置文件等的一致性检查。
关于后续
建议增加一个文件对比的功能, 在不同服务器更新完补丁之后可以快速的进行文件对比。
判断核心文件是否正常,如果不正常,应该尽快进行上报,避免因为文件不正常出现产品异常的情况。
可以将这个内容作为一个常规日常运行后检查事项, 提高产品的稳定性避免出现异常。
多服务器的相通性是一个非常重要的课题。
文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




