问题背景
很多项目场景中服务器只有一台或者两台,不具备集群的条件,但是也必须提供单节点高可用的服务。我个人对单节点高可用特性的定义包括:开机自启动,定时监控活动状态并宕机自启,脚本一键群起,模块脚本启停。
解决方案
这个问题在windows环境下的整体解决思路是这样的:首先,利用windows任务计划程序创建一个开机启动的任务,并且之后每隔一分钟启动一次,检查所有的部件是不是alive状态,如果不是则启动。开机启动任务就是运行这个监控并启动的脚本。这个套路的开始就在于windows任务计划程序,需要用管理员权限启动bat脚本,做到这一步就成功一半。
1.选择创建任务,相比基本任务,功能比较全一些。在常规界面进行修改:
- 填写任务名称
- 选择不管用户是否登录都要运行
- 不存储密码(这个不勾选,为了避免win server12的bug)
- 使用最高权限运行
- 配置:选择适配的操作系统
2.在触发器界面就是设置什么条件会触发任务的执行,我们设置开机时+定时执行。
- 开机启动触发器的设置
- 固定频率执行触发器的设置,这里需要手动修改一下时间。
3.在操作页面新建任务,选择执行脚本和填写脚本执行的根目录。
4.条件界面,去掉所有限制条件,保证执行。
5.设置界面
参考资料
https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_1075_days.html windows任务计划的新手入门教程
https://www.cnblogs.com/52php/p/5681412.html 定时执行任务