我正在寻求为Karaf实施故障转移(主/从)。我们目前 服务器设置有两个应用程序服务器,其中有一个共享的SAN磁盘 我们当前的Java应用程序安装在一个位置,并且可以 可以同时在任何一台机器或两台机器上启动。
我希望以类似的方式实现Karaf主/从故障转移 (一个安装由两个应用服务器共享),但我不确定 这真的是一个很好的道路,并会欣赏一些建议 是否替代品(如下所述)明显更好。
目前的故障转移理念: 在共享SAN上安装一次Karaf并在此设置基本文件锁定 共享磁盘。 两个应用程序服务器都将有效地启动Karaf启动脚本, 但是只有一个(第一个)将完全启动(抓住锁)和 第二个将保持待机,直到它抓住锁(如果主人跌倒 以上)
我可以从中看到的主要好处是我只需要管理 将组件部署到一个Karaf安装,我只需要管理 一个卡拉夫装置。
备选方案: 我们在共享SAN上的两个不同位置安装Karaf并进行设置 锁定到同一个锁文件。 每个应用程序服务器都有自己的Karaf实例,从而启动 要运行的脚本。
这将使我们的部署稍微复杂一些(2 Karaf 管理和部署到的安装。)
如果有人能表明他们有任何具体问题,我会感兴趣 有了当前的想法。
注意:据我所知,Karaf-cellar可以简化我的Karaf实例 管理,但我们需要进行另一轮PoC等。 批准我们公司使用酒窖(作为单独的产品)。某物 我希望将来迁移到那里。
答案 0 :(得分:0)
这是关于如何为HA设置锁文件的文档:
karaf.lock=true
karaf.lock.class=org.apache.karaf.main.lock.SimpleFileLock
karaf.lock.dir=<PathToLockFileDirectory>
karaf.lock.delay=10000
从那里可以看出,您还可以设置捆绑起始级别的级别以启动或不启动:
karaf.lock.level=50