使用远程事件侦听器扩展infinispan服务器8.2.2

时间:2016-09-19 18:41:26

标签: infinispan

我们目前有一个5节点的infinispan服务器集群在生产中运行,它每秒最多可处理2 000个请求。我们的愿望是使缓存比例线性增加10倍或更多。在我们的压力测试中,我们的应用服务器在计划的未来负载下30分钟后开始从infinspan获取SocketTimeoutExceptions。 我们最活跃的缓存以分布式模式运行,拥有2个所有者和20个细分。其中一个瓶颈似乎是我们的pub / sub系统使用远程事件监听器。基本上每当修改缓存条目时,我们的远程事件侦听器都会收到通知,然后他们会响应长轮询请求。远程事件侦听器在tomcat上的Java servlet中运行。

大约一个月前,我们遇到了HERE发现的问题 并且在使用增加的事件队列大小(现在为1百万)修补infinispan服务器之后,我们能够扩展到相当远的距离,而不是我们想要的那么多。

就服务器上的实际错误而言,我们看到的是: ERROR [org.infinispan.interceptors.InvocationContextInterceptor](pool-6-thread-1)ISPN000136:执行命令RemoveExpiredCommand时出错,写入密钥[[B0x033e183537626430 .. [27]]:org.infinispan.util.concurrent.TimeoutExcepti on:ISPN000299:30秒后无法锁定密钥[B0x033e183537626430 .. [27]和请求者CommandUUID {address = XYZ,id = 851936}。锁由CommandUUID {address = XYZ,id = 851819}

保存

以下是缓存配置:

        <subsystem xmlns="urn:infinispan:server:core:8.2" default-cache-container="clustered">
            <cache-container name="clustered" default-cache="default" statistics="true">
                <transport lock-timeout="60000" />
                <distributed-cache name="default" mode="SYNC" segments="20" owners="2" remote-timeout="30000" start="EAGER">
                    <locking acquire-timeout="30000" concurrency-level="10000" striping="false"/>
                    <transaction mode="NONE"/>
                    <expiration lifespan="86400000" max-idle="900000" interval="60000"/>
                    <eviction strategy="LIRS" size="1000000"/>
                </distributed-cache>
                <distributed-cache name="gameStateCache" mode="SYNC" remote-timeout="30000" start="EAGER">
                    <locking acquire-timeout="30000" concurrency-level="10000" striping="false"/>
                    <expiration lifespan="86400000" max-idle="900000" interval="60000"/>
                    <eviction strategy="LIRS" size="1000000"/>
                </distributed-cache>
            </cache-container>
        </subsystem>

是否有人了解远程事件监听系统的高负载问题,或者可能建议其他配置?

干杯, 布赖恩

0 个答案:

没有答案