WSO2:AM:在没有Hazelcast的情况下填充组织更改

WSO2:AM:在没有Hazelcast的情况下填充组织更改,wso2,wso2-am,hazelcast,wso2carbon,Wso2,Wso2 Am,Hazelcast,Wso2carbon,我们正在运行WSO2-AM 2.6多租户集群,它有两种节点 完整配置文件节点(发布者、商店、KM等) 网关工作节点 使用EFS与发布者和网关共享信息 到目前为止,我们正在启用Hazelcast,但我们更希望禁用Hazelcast,因为它会给我们的生产带来很多痛苦,而且我们知道,在WSO2 2.x中,启用它不是强制性的 我们使用以下设置测试了我们的系统: <clustering class="org.wso2.carbon.core.clustering.hazelcast.Hazelc

我们正在运行WSO2-AM 2.6多租户集群,它有两种节点

  • 完整配置文件节点(发布者、商店、KM等)
  • 网关工作节点
使用EFS与发布者和网关共享信息

到目前为止,我们正在启用Hazelcast,但我们更希望禁用Hazelcast,因为它会给我们的生产带来很多痛苦,而且我们知道,在WSO2 2.x中,启用它不是强制性的

我们使用以下设置测试了我们的系统:

<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="false">

一切都正常运行,除了我们注意到的一个副作用:需要很长时间(甚至可能是15分钟)才能将租户的停用或重新激活填充到工作节点

当使用新创建的API创建全新的组织时,几乎可以立即在工作人员处运行API。但如果禁用该组织,API仍将运行。需要很长时间,工作人员才会报告租户不再处于活动状态

对于重新激活租户也是如此。这将花费很多时间,直到工作人员停止抱怨不活动的组织并允许运行API


我们是否需要更改配置设置?或者这是预期的行为?在没有Hazelcast的情况下,谁应该向员工报告组织的变化?

有一个租户缓存[1],其中包含租户信息。缓存(以及任何缓存)的默认TTL为15分钟。停用租户时,将使用hazelcast清除此分布式缓存。这就是为什么在禁用hazelcast群集时会出现上述情况

通常,在生产环境中,不太可能需要频繁激活和停用租户。所以我不认为15分钟的延迟是一个令人担忧的问题

但是,如果确实如此,则必须启用Hazelcast群集。当你说你因为Hazelcast而面临很多痛苦时,我相信这是因为这些缓存的分布式特性。作为解决方案,您可以启用本地缓存,而不是分布式缓存。这里,Hazelcast集群仅用于缓存失效调用。那可能对你有用。(免责声明:我还没有尝试过。)

为此,您需要在
carbon.xml

<Cache>
    <!-- Default cache timeout in minutes -->
    <DefaultCacheTimeout>15</DefaultCacheTimeout>
    <!-- Force all caches to act as local -->
    <ForceLocalCache>true</ForceLocalCache>
</Cache>

15
真的

[1]

有一个租户缓存[1],其中包含租户信息。缓存(以及任何缓存)的默认TTL为15分钟。停用租户时,将使用hazelcast清除此分布式缓存。这就是为什么在禁用hazelcast群集时会出现上述情况

通常,在生产环境中,不太可能需要频繁激活和停用租户。所以我不认为15分钟的延迟是一个令人担忧的问题

但是,如果确实如此,则必须启用Hazelcast群集。当你说你因为Hazelcast而面临很多痛苦时,我相信这是因为这些缓存的分布式特性。作为解决方案,您可以启用本地缓存,而不是分布式缓存。这里,Hazelcast集群仅用于缓存失效调用。那可能对你有用。(免责声明:我还没有尝试过。)

为此,您需要在
carbon.xml

<Cache>
    <!-- Default cache timeout in minutes -->
    <DefaultCacheTimeout>15</DefaultCacheTimeout>
    <!-- Force all caches to act as local -->
    <ForceLocalCache>true</ForceLocalCache>
</Cache>

15
真的

[1]

老实说,我认为您应该进一步探索如何配置Hazelcast。Hazelcast嵌入了许多非常常用的项目堆栈(JHipster、Atlassian、Apache Camel、SunGard等)。在这里,它非常适合做您想做的事情,但它也是高度可配置的,因此您可能需要根据需要进行设置。如果您只是禁用它,您将删除它带来的所有集群可伸缩性。配置只是一个XML文件,您可以在此处找到所有文档:


这很容易理解,而且绝对值得您花费时间。

老实说,我认为您应该进一步探索如何配置Hazelcast。Hazelcast嵌入了许多非常常用的项目堆栈(JHipster、Atlassian、Apache Camel、SunGard等)。在这里,它非常适合做您想做的事情,但它也是高度可配置的,因此您可能需要根据需要进行设置。如果您只是禁用它,您将删除它带来的所有集群可伸缩性。配置只是一个XML文件,您可以在此处找到所有文档:

这很容易理解,绝对值得你花时间