Tomcat HA 问题

2022-06-07 17:53:45 +08:00
 ecloud

我的程序除了一个标准的后端 app 以外,还会运行一个(或多个)订阅线程

需求是这样的

  1. 正常 Master 运行的时候,Standby 的订阅线程不能启动
  2. 当 Master 失效的时候,需要杀死 Master 的订阅线程(如果它还活跃的话)
  3. 当 Standby 接管的时候,启动他自己的订阅线程
  4. 订阅线程可以接受些许延迟,不要求切换的瞬间就启动

我查看了一下 Haproxy 和 Tomcat 自己的 HA 功能,似乎都没有一个“切换脚本”这种东西

是不是必须用 LVS+keepalive 这种方法,或者商业的 HA 方案?

1075 次点击
所在节点    Java
4 条回复
julyclyde
2022-06-07 18:05:19 +08:00
把这个后台任务和 web 服务混在一起,我觉得不合适
litguy
2022-06-08 10:09:47 +08:00
最简单的就是配置一个 daemon 脚本,定时检查 service ,失效就 crash 节点
byte10
2022-06-08 11:35:57 +08:00
少年,一个分布式锁就可以解决了。另外你这个为啥不是做负载均衡,而是做 HA ?
ecloud
2022-06-08 14:13:00 +08:00
@julyclyde 嗯,现在提供的简易解决方法是把订阅部分单独部署在一台服务器上,由一个看门狗监控状态。由于用户方的维护水平很低,最终大概不会考虑 LVS 之类的方案,或许建议用户直接购买商业 HA 产品。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/857968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX