Java Payara/Hazelcast实例对象层次结构

Java Payara/Hazelcast实例对象层次结构,java,instance,hierarchy,hazelcast,payara,Java,Instance,Hierarchy,Hazelcast,Payara,众所周知,Payara/Hazelcast应用程序平台没有很好地记录其体系结构级对象关系或层次结构。我没有在他们的文件或互联网上找到任何东西 我试图了解Payara/Hazelcast对象(域、集群、部署组、Hazelcast实例、应用程序)之间的关系 我的环境为:Payara 5.2021.3 community edtion在两台od相同的机器上运行,使用Centos 8 Linux,配置为: - domain name: production - cluster name: thss -

众所周知,Payara/Hazelcast应用程序平台没有很好地记录其体系结构级对象关系或层次结构。我没有在他们的文件或互联网上找到任何东西

我试图了解Payara/Hazelcast对象(域、集群、部署组、Hazelcast实例、应用程序)之间的关系

我的环境为:Payara 5.2021.3 community edtion在两台od相同的机器上运行,使用Centos 8 Linux,配置为:

- domain name: production
- cluster name: thss
- nodes(two): localhost-production(CONFIG), centos8thssv2-production(SSH)
- instances(two): ThssEJBServer (runs on localhost-production), ThssWEBServer (runs on centos8thssv2-production)
我试图通过以下不同方式从表4中获取实例信息:

  • 域日志文件显示:

    帕亚拉数据网格状态:DG版本:4 DG名称:thss DG尺寸:3 实例:{ DataGrid:thss名称:ThssWEBServer Lite:false此:false UUID:7d51a149-ce9f-43ce-a905-22a63a685689地址:/10.0.1.152:5900 DataGrid:thss名称:服务器Lite:false此:false UUID:796ce6ef-8694-44cb-9378-1724DFD356C地址:/10.0.1.102:4900 DataGrid:thss名称:ThssEJBServer Lite:false此:true UUID:cf5fb684-2729-4f4e-91ef-cbaf85e0ddfa地址:/10.0.1.102:5900 }

    有三个Hazelcast实例名为:server(DAS),另外两个已添加到域中

  • 管理员界面:

  • asadmin CLI:

    asadmin>列出实例 ThssEJBServer正在运行
    ThssWeb服务器正在运行
    命令列表实例已成功执行。 asadmin>

  • 编程的

     Set<HazelcastInstance> instanceSet = Hazelcast.getAllHazelcastInstances();
     logger.info("-------------------There are "+instanceSet.size()+" found in the cluster");
     if(instanceSet.size()>0){
         for (HazelcastInstance instance : instanceSet) {
             logger.info("Instance name: "+instance.getName());
         }
     }
    
    请注意,只找到了一个实例,它的名称为:magical_montalcini,这个名称在任何其他实例中都没有显示

    这不仅是结果,当前两次运行相同的Java代码时,我们发现Java代码片段可以给出正确的Hazelcast实例(其中3个),但在大约4-5次重新运行此代码后,我们从日志中获得了较高的结果,早期结果丢失,不再可重新生成

    另一件有趣的事是:

    当我将应用程序部署到域中时,它也显示在管理ui中

    但是,当我试图通过运行asadmin列表应用程序从asadmin CLI列出它时,只会显示一个

    asadmin> list-applications<br>
    __monitoringconsole  <health, metrics, openapi, web>  
    Command list-applications executed successfully.<br>
    asadmin> 
    
    asadmin>列出应用程序
    __监控控制台 命令列表应用程序已成功执行。
    asadmin>
    HazelcastInstance是用于访问集群的Hazelcast对象。在每个JVM上,每个Hazelcast集群只有一个Hazelcast实例。Payara Servr创建单个Hazelcast集群,其中的集群成员表示Payara实例。您可以使用获取Payara实例列表

    Hazelcast.getAllHazelcastInstances().iterator().next().getCluster().getMembers()
    
    Payara Server直接为您提供Hazelcast实例,因此您可以将其简化为:

    @Inject HazelcastInstance hzInstance;
    
    hzInstance.getCluster().getMembers()
    
    如果您可以使用注入,那么还可以使用JNDI as检索它

    @Inject HazelcastInstance hzInstance;
    
    hzInstance.getCluster().getMembers()