我是靠谱客的博主 聪慧大树,最近开发中收集的这篇文章主要介绍关于多台服务器负载均衡时,只运行一个定时器的设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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:保证只有一个定时任务去执行业务逻辑

 

最后

以上就是聪慧大树为你收集整理的关于多台服务器负载均衡时,只运行一个定时器的设计的全部内容,希望文章能够帮你解决关于多台服务器负载均衡时,只运行一个定时器的设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部