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

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 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并