Jimbo_liu 2019-05-20 10:17 采纳率: 0%
浏览 1175

Spring Boot 如何实现程序的主热备功能?

目前项目有一个需求,就是程序实现双机热备。
客户方已购买了双机热备软件,但是软件只能实现热备。
但是程序内部有许多的定时任务,都是操作数据库内的,和对第三方的TCP进行通讯的。

如果两台服务器都同时启动的情况下定时任务等会同时执行,但是实际只需要一台对外开放服务及数据处理。

目前有一个思路就是能不能暂停spring boot的启动,当程序判断到主机的IP被双机热备软件切换到该服务器时才启动该服务器的spring boot 服务。
但是没有找到一个合适的实现方式。

  • 写回答

2条回答 默认 最新

  • 珍妮玛•黛金 博客专家认证 2019-05-20 12:56
    关注
    //说一下我的想法
    1.主服务器上spring  boot正常启动
    2.备用服务上新建一个心跳客户端,用socket也好,用别的方式都行,和主服务器上的服务发送心跳包,例如每隔10秒发送一次
    如果心跳包没有收到,或者连接异常,就ping一下主服务器是否宕机,这种情况就在心跳客户端上用java cmd启动备用spring boot服务,此时备用服务器就变成主服务了
    然后运维人员就赶紧去维护宕机的那台服务器,等维护成功就在这台服务器上启动心跳客户端,然后往新的主服务器上发送心跳包,以此类推
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误