【发布时间】:2023-04-02 03:41:02
【问题描述】:
我制作了 java 应用程序来将数据加载到分布式缓存。 应用程序加载数据很好,但是当加载超过 1000 万条记录时,我收到“服务 DistributedSessions 不存在启用存储的节点”错误。但是当我加载少于 1000 万条记录时,它运行良好。 我在 Web 逻辑中创建了一个集群并加入了 4 个节点,如下所示:
• 2 个服务器(Storage enable =true)用于存储数据
• 2 个客户端(存储启用 =false)仅查看和查询
tangosol-coherence-override.xml
<cluster-config>
<member-identity>
<cluster-name system-property="tangosol.coherence.cluster">CLUSTER_NAME</cluster-name>
</member-identity>
<multicast-listener>
<time-to-live system-property="tangosol.coherence.ttl">30</time-to-live>
<address>224.1.1.1</address>
<port>12346</port>
</multicast-listener>
</cluster-config>
<logging-config>
一致性缓存配置.xml
<?xml version="1.0"?>
<serializer system-property="tangosol.coherence.serializer"/>
<socket-provider system-property="tangosol.coherence.socketprovider"/>
<cache-mapping>
<cache-name>*</cache-name>
<scheme-name>example-distributed</scheme-name>
</cache-mapping>
<scheme-name>example-distributed</scheme-name>
<service-name>DistributedCache</service-name>
<backing-map-scheme>
<local-scheme>
<scheme-ref>example-binary-backing-map</scheme-ref>
</local-scheme>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>
<local-scheme>
<scheme-name>example-binary-backing-map</scheme-name>
<eviction-policy>HYBRID</eviction-policy>
<high-units>{back-size-limit 0}</high-units>
<unit-calculator>BINARY</unit-calculator>
<expiry-delay>0</expiry-delay>
<cachestore-scheme></cachestore-scheme>
</local-scheme>
服务器参数:
-Xms6g
-Xmx12g
-Xincgc
-XX:-UseGCOverheadLimit
-Dtangosol.coherence.distributed.localstorage=true
-Dtangosol.coherence.cluster=CLUSTER_NAME
-Dtangosol.coherence.clusteraddress=224.1.1.1
-Dtangosol.coherence.clusterport=12346
客户论证:
-Xms1g
-Xmx1g
-Xincgc
-XX:-UseGCOverheadLimit
-Dtangosol.coherence.distributed.localstorage=false
-Dtangosol.coherence.session.localstorage=true
-Dtangosol.coherence.cluster=CLUSTER_NAME
-Dtangosol.coherence.clusteraddress=224.1.1.1
-Dtangosol.coherence.clusterport=12346
【问题讨论】:
标签: java hibernate caching oracle-coherence