gpt4 book ai didi

jakarta-ee - 迁移/创建 HA-Singleton 到 jboss 7

转载 作者:行者123 更新时间:2023-12-04 08:52:31 24 4
gpt4 key购买 nike

我一直在 jboss 中使用 deploy-hasingleton 文件夹作为 6,这允许我创建一个单例 bean,用于控制来自集群节点的业务信息请求。这些方法是同步的,是为了控制节点之间的并发性(相同的数据不能在不同的节点)。

现在我要迁移到 Jboss 7,并且由于 deploy-hasingleton 文件夹消失了,我一直在关注官方示例:

  • Cluster Link
  • Cluster Link 2

  • 问题是这些例子太琐碎了,不明白哪里可以放业务逻辑方法。
    所以我尝试将该逻辑放在 SingletonService 中,它实现了:Service、MyInterface

    我已将 getValue 方法修改为以下内容:
    @Override
    public MyInterface getValue() throws IllegalStateException,
    IllegalArgumentException {

    return this;
    }

    在客户端:
    @Override
    public List<Long> myMeth(Long arg1, int arg2) {
    LOGGER.log("loadGroups() is called()");
    ServiceController<?> service = CurrentServiceContainer.getServiceContainer().getService(
    GroupDistributorService.SINGLETON_SERVICE_NAME);

    if (service != null) {
    return ((MyInterface ) service.getValue()).getMyMethod(arg1, arg2);
    } else {
    throw new IllegalStateException("Service '" + GroupDistributorService.SINGLETON_SERVICE_NAME + "' not found!");
    }
    }

    我怀疑这是正确的方法。其次,这似乎适用于包含主单例服务的节点。但是在其他节点中,它在调用单例服务时会锁定,并且出现超时。

    最佳答案

    几个月前,我发布了关于在 Jboss 7 中使用 HASingleton 的博客文章:
    http://www.kubrynski.com/2013/07/using-ha-singleton-in-jboss-7.html
    希望它会有所帮助。确保您启用了集群模式:

    <subsystem xmlns="urn:jboss:domain:ee:1.0">
    <global-modules>
    <module name="org.jboss.msc" slot="main">
    <module name="org.jboss.as.clustering.singleton" slot="main">
    </global-modules>
    </subsystem>

    并且你坚持使用 osgi 系统,通过在你的 pom.xml(到 jar/war 插件)中添加这样的配置:
    <configuration>
    <archive>
    <manifestentries>
    <dependencies>
    org.jboss.msc,org.jboss.as.server,
    org.jboss.as.clustering.singleton
    </dependencies>
    </manifestentries>
    </archive>
    </configuration>

    关于jakarta-ee - 迁移/创建 HA-Singleton 到 jboss 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19539857/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com