V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ecloud
V2EX  ›  Java

Tomcat HA 问题

  •  
  •   ecloud ·
    yecloud · 2022-06-07 17:53:45 +08:00 · 1189 次点击
    这是一个创建于 900 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    需求是这样的

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

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

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

    4 条回复    2022-06-08 14:13:00 +08:00
    julyclyde
        1
    julyclyde  
       2022-06-07 18:05:19 +08:00
    把这个后台任务和 web 服务混在一起,我觉得不合适
    litguy
        2
    litguy  
       2022-06-08 10:09:47 +08:00
    最简单的就是配置一个 daemon 脚本,定时检查 service ,失效就 crash 节点
    byte10
        3
    byte10  
       2022-06-08 11:35:57 +08:00
    少年,一个分布式锁就可以解决了。另外你这个为啥不是做负载均衡,而是做 HA ?
    ecloud
        4
    ecloud  
    OP
       2022-06-08 14:13:00 +08:00
    @julyclyde 嗯,现在提供的简易解决方法是把订阅部分单独部署在一台服务器上,由一个看门狗监控状态。由于用户方的维护水平很低,最终大概不会考虑 LVS 之类的方案,或许建议用户直接购买商业 HA 产品。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1695 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.