概述
1:场景,公司项目上线,项目中有定时,用来处理数据
2:测试阶段没有出任何问题,完全按照流程
3:项目开始上线,需要做到项目的高可用性,对服务器做了分布式处理
4:目前是设置了主备,再次处理数据时遇到了定时任务对资源的争夺,产生脏数据并且导致任务失败
5:原因:两台服务器共同执行定时,或者b执行定时任务过程中a在执行另一条定时任务,导致数据处理失败
6:如何去解决多个服务器之间之运行一个定时任务,并且能够随时切换呢?
解决方案: 1:创建一个服务器相关数据库(dbtimer),数据库字段 ip status sendurl(发送http请求使用)
2:创建定时任务轮询对dbtimer表进行轮询,依次对数据库中的服务器使用http 请求对sendurl进行访问,如果返回200则目标服务器没有宕机 status置为0并跳出 ,否则status置为1并 执行下一条
3:定时任务根据dbtimer中的状态以及ip核对是否该服务器是否有执行权限
4:保证只有一个定时任务去执行业务逻辑
最后
以上就是聪慧大树为你收集整理的关于多台服务器负载均衡时,只运行一个定时器的设计的全部内容,希望文章能够帮你解决关于多台服务器负载均衡时,只运行一个定时器的设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复