首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个应用程序共享缓存的JBoss数据网格库模式-什么是有效的方法

具有多个应用程序共享缓存的JBoss数据网格库模式-什么是有效的方法
EN

Stack Overflow用户
提问于 2016-02-19 00:22:36
回答 1查看 256关注 0票数 0

在多个应用程序使用相同缓存的情况下,让Infinispan/JBoss数据网格处于库模式的最有效方法是什么?

我目前在EAP6.3中将JBoss数据网格设置为库模式,配置了大约10个应用程序和6个不同的缓存。缓存模式为复制。每个应用程序都有一个缓存管理器,该管理器实例化应用程序所需的缓存。每个缓存至少由2个应用程序使用。

我连接了hawtio,可以从JMX bean中看到多个缓存管理器是用重复的缓存实例创建的。从日志中,我看到:

代码语言:javascript
复制
ISPN000094: Received new cluster view: [pcu-18926|10] (12) [pcu-18926, pcu-24741, pcu-57265, pcu-18397, pcu-26495, pcu-56892, pcu-59913, pcu-53108, pcu-34661, pcu-43165, pcu-32195, pcu-28641]

在缓存管理器之间一直相互通信的开销是否很大?我最终希望在库模式下使用JBoss数据网格设置4个集群节点,那么如何配置才能使一个节点中的所有应用程序共享相同的缓存管理器,从而减少噪音?我不能在服务器模式下使用JBoss数据网格,因为我知道服务器模式可以满足我的要求。

谢谢你的建议。

EN

回答 1

Stack Overflow用户

发布于 2016-02-19 17:58:05

首先,我可能误解了您的设置:日志显示有10个“节点”。你实际使用了多少台服务器?如果使用缓存与同一台机器上的10个应用程序通信,这是一种非常不理想的方法;您保留所有数据的10个副本,并使用许多RPC在缓存之间传播写入。您应该有一个本地模式缓存,并且只检索对它的引用(可能是通过JNDI)。

缓存管理器不会相互通信,而缓存仅在有执行的操作时,或者当节点加入/离开/崩溃(然后缓存必须重新平衡)时才会执行。

它是JGroups通道,用于保持视图并交换一些消息以检测其他节点是否处于活动状态或其他同步消息,但此类消息每隔几秒钟发送一次,因此开销非常低。

另一方面,每个通道都有几个线程池,缓存管理器也有一个线程池,因此会有一些内存开销。从CPU的角度来看,有一个线程迭代遍历缓存并清除过期的条目(任务每分钟启动一次),因此即使空闲缓存充满了条目,也会消耗一些周期。如果缓存是空的,则消耗非常低(没有太多需要迭代的内容)。

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

https://stackoverflow.com/questions/35486895

复制
相关文章

相似问题

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