如何在 Payara 5.193 中配置数据网格 ttl

Posted

技术标签:

【中文标题】如何在 Payara 5.193 中配置数据网格 ttl【英文标题】:How to configure data grid ttl in Payara 5.193 【发布时间】:2020-03-16 06:39:58 【问题描述】:

之前,在 Payara 4 中,我们使用 Hazelcast 集群/数据网格。我们在名为 hazelcast-config.xml 的文件中为 Shiro authenticationCache 网格映射条目配置了集群发现和 ttl:

<?xml version="1.0" encoding="UTF-8"?><hazelcast xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2
001/XMLSchema-instance" xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.5.xsd">
  <properties/>
  <group>
    <name>prod</name>
    <password>pass</password>
  </group>
  <management-center enabled="false">http://localhost:8180/mancenter</management-center>
  <network>
           <join>
      <multicast enabled="false">
        <multicast-group>my-group</multicast-group>
        <multicast-port>my-port</multicast-port>
      </multicast>              

<tcp-ip enabled="false">
        <interface>127.0.0.1</interface>
        <member-list>
          <member>127.0.0.1</member>
        </member-list>
      </tcp-ip>
    </join>
    <interfaces enabled="true">
      <interface><my-ip-address></interface>
    </interfaces>
  </network>
  <map name="*.authorizationCache">
    <async-backup-count>1</async-backup-count>
    <backup-count>0</backup-count>
    <time-to-live-seconds>7210</time-to-live-seconds>
  </map>
<map name="*.authenticationCache">
           <async-backup-count>1</async-backup-count>
        <backup-count>0</backup-count>
        <time-to-live-seconds>7200</time-to-live-seconds>
    </map>
  <map name="/mymap">
    <async-backup-count>1</async-backup-count>
    <backup-count>0</backup-count>
    <time-to-live-seconds>7210</time-to-live-seconds>
  </map>
  <map name="default">
    <async-backup-count>1</async-backup-count>
    <backup-count>0</backup-count>
  </map>
</hazelcast>

现在使用 Payara 5,hazelcast 似乎已经加入。集群成员发现 (domain discovery) “正常工作”,无需使用 hazelcast-config.xml。问题是,如果没有 xml 文件,ttl 就无法工作。如果我提供 hazelcast-config.xml,它会给我我的 ttl 配置,但我会丢失域发现。

有没有一种方法可以让 Payara 5.193 同时进行域发现和数据网格 ttl 配置?看来我应该可以在 shiro.ini 中设置 ttl,但我没有看到任何文档表明这一点。

谢谢

【问题讨论】:

【参考方案1】:

在您的 Hazelcast 配置中,您没有发现设置。您可以使用&lt;multicast enabled="false"&gt; 禁用基于多播的发现。您还可以使用 &lt;tcp-ip enabled="false"&gt; 禁用静态 IP 配置。然后,没有配置发现,Hazelcast 不会形成集群。

您需要设置静态 IP 配置或使用任何发现机制。请在此处阅读更多信息:https://docs.hazelcast.org/docs/latest/manual/html-single/#discovery-mechanisms。

【讨论】:

在生产中,我们确实启用了发现方法。但是,我想使用域或 AWS 发现,这似乎不适用于使用 hazelcast-config.xml 和 hazelcast 3.5.3。我认为升级到 3.12 会有所帮助。谢谢。 是的,请升级,3.5.3版本太旧了。 我想这更像是一个 shiro 而不是一个榛子问题。问题仍然存在:如果不在 hazelcast-config.xml 中,我如何设置 shiro 的 realm.authenticationCache TTL?

以上是关于如何在 Payara 5.193 中配置数据网格 ttl的主要内容,如果未能解决你的问题,请参考以下文章

Payara 5 web.xml 中 PGSimpleDataSource 的自定义属性

升级到 payara 4.1.1.171 后应用程序未加载

Glassfish Payara + jenkins自动部署脚本

在Payara 5中部署包含ejb-module的ear-file时出现问题

如何计划从 WebSphere 迁移到更便宜的应用程序服务器,如 JBoss、Tomcat 或 Payara

使用 Payara 4.1.1 在不同的 JAR 中加载 CDI bean