首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Payara/Hazelcast实例对象层次结构

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

Stack Overflow用户
提问于 2021-05-17 10:10:09
回答 1查看 191关注 0票数 2

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

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

我的环境为: Payara 5.2021.3社区编辑运行在两台与Centos 8 Linux相同的机器上,它被配置为:

代码语言:javascript
复制
- 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种不同的方式获取实例信息,如下所示:

  1. 域日志文件显示: Payara数据网格状态: DG版本:4 DG名称: thss DG大小:3实例:{ DataGrid: thss名称: ThssWEBServer Lite: false This: false UUID: 7d51a149-ce9f-43ce-A 905-22a63a685689地址: /10.0.1.152:5900 DataGrid: thss名称: false UUID: 796ce6ef-8694-44cb-9378-1724dfdd3556c地址: /10.0.1.102:4900 DataGrid: thss名称: ThssEJBServer Lite: false 有三个Hazelcast实例名为: server(DAS),另外两个已添加到域。
  2. admin_ui:
  1. asadmin CLI: asadmin>列表-实例ThssEJBServer运行 ThssWEBServer运行 命令列表-成功执行的实例。asadmin>
  2. 以编程方式 设置instanceSet = Hazelcast.getAllHazelcastInstances();logger.info(“”

此代码被放入EJB模块并将其注释为@Startup和@Singleton,在将其部署到实例ThssEJBServer后,ThssEJBServer日志显示:

代码语言:javascript
复制
[2021-05-17T15:55:23.645+1000] [Payara 5.2021.3] [INFO] [] [com.longz.thss.ejb.listener.ThssHzProvider] [tid: _ThreadID=118 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1621230923645] [levelValue: 800] [[
-------------------There are 1 found in the cluster]]

[2021-05-17T15:55:23.645+1000] [Payara 5.2021.3] [INFO] [] [com.longz.thss.ejb.listener.ThssHzProvider] [tid: _ThreadID=118 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1621230923645] [levelValue: 800] [[
Instance name: magical_montalcini]]

请注意,只找到一个实例,其名称为: magical_montalcini,此名称在任何其他实例中均未显示。

这不仅是结果,当最初的几次运行相同的Java代码时,我们发现Java代码的片段可以给出正确的Hazelcast实例(其中3个),但是在大约4-5次重复运行这个代码之后,我们从日志中获得了更高的结果,早期的结果丢失了,不能再复制了。

另一个有趣的事情是:

当我将应用程序部署到域中时,它也会出现在Admin_ui中。

但是,当我试图从asadmin-CLI中列出它时,通过运行asadmin list -application,只有一个出现。

代码语言:javascript
复制
asadmin> list-applications<br>
__monitoringconsole  <health, metrics, openapi, web>  
Command list-applications executed successfully.<br>
asadmin> 
EN

回答 1

Stack Overflow用户

发布于 2021-06-04 07:02:17

HazelcastInstance是用来访问集群的Hazelcast对象。在每个JVM上,每个Hazelcast集群只有一个HazelcastInstance。Payara Servr创建一个单独的Hazelcast集群,Payara实例由其中的集群成员表示。您可以使用

代码语言:javascript
复制
Hazelcast.getAllHazelcastInstances().iterator().next().getCluster().getMembers()

Payara Server直接为您提供Hazelcast实例,因此可以将其简化为:

代码语言:javascript
复制
@Inject HazelcastInstance hzInstance;

hzInstance.getCluster().getMembers()

如果可以使用注入,也可以使用JNDI作为记录在这里检索它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67567688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档