问题标签 [terracotta]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13326 浏览

java - Do we need terracotta on top of ehcache for clustering?

I am doing to a proof of concept using ehcache as the cache provider.

Read somewhere saying we need terracotta server running, ALONG WITH ehcache to provide clustering.

Does ehcache alone provide clustering service or we need terracotta also?

Thanks, Venkat

0 投票
1 回答
928 浏览

java - Terracotta Ehcache:调试期间服务器断开连接

我发现,当我通过调试器连接到应用程序并开始调试时,与兵马俑服务器的连接丢失(?),并且兵马俑服务器日志中出现下一条消息:

2012-03-30 13:45:06,758 [L2_L1:TCComm Main Selector Thread_R (listen 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl。DSO 服务器 - 127.0.0.1:55112 可能在 Long GC 中。自上次 ping 回复以来的 GC 计数:1 2012-03-30 13:45:27,761 [L2_L1:TCComm Main Selector Thread_R (listen 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl。DSO 服务器 - 127.0.0.1:55112 可能在 Long GC 中。自上次 ping 回复以来的 GC 计数:1 2012-03-30 13:45:31,761 [L2_L1:TCComm Main Selector Thread_R (listen 0.0.0.0:9510)] WARN com.tc.net.protocol.transport.ConnectionHealthChecker Impl。DSO 服务器 - 127.0.0.1:55112 可能在 Long GC 中。自上次 ping 回复以来的 GC 计数:2

...

2012-03-30 13:46:37,768 [L2_L1:TCComm Main Selector Thread_R (listen 0.0.0.0:9510)] 错误 com.tc.net.protocol.transport.ConnectionHealthChecke rImpl。DSO 服务器 - 127.0.0.1:55112 可能在 Long GC 中。自上次 ping 回复以来的 GC 计数:10。但它太长了。不再重试 2012-03-30 13:46:38,768 [HealthChecker] INFO com.tc.net.protocol.transport.ConnectionHealthCheckerImpl。DSO 服务器 - 127.0.0.1:55112 已失效 2012-03-30 13:46:38,768 [HealthChecker] 错误 com.tc.net.protocol.transport.ConnectionHealthCheckerImpl: DSO 服务器 - 声明连接失效 ConnectionID(1.0b1994ac80f14b7191080bdc3f38582a) 空闲时间 45317 2012-03-30 13:46:38,768 [L2_L1:TCWorkerComm # 0_R] 警告 com.tc.net.protocol.transport.ServerMessageTransport - ConnectionID(1.0b1994ac80f14b71 91080bdc3f38582a):关闭事件:com.tc.net.core。TCConnectionJDK14@5158277:已连接:false,已关闭:true local=127.0.0.1:9510 remote=127.0.0 .1:55112 connect=[Fri Mar 30 13:34:22 BST 2012] idle=2001ms [207584 读取,229735 写入]。状态:已断开连接

...

2012-03-30 13:46:38,799 [L2_L1:TCWorkerComm # 0_R] INFO com.tc.objectserver.persistence.sleepycat.SleepycatPersistor - ChannelID = [1] 的已删除客户端状态 2012-03-30 13:46:38,801 [WorkerThread(channel_life_cycle_stage, 0)] INFO com.tc.objectserver.handler.ChannelLifeCycleHandler - : 收到 tran 运动断开连接。关闭客户端 ClientID[1] 2012-03-30 13:46:38,801 [WorkerThread(channel_life_cycle_stage, 0)] 信息 com.tc.objectserver.persistence.impl.TransactionStoreImpl - shutdownC lient():从 DB 中删除 txns:0

发生这种情况后,任何带有缓存的操作,就像getWithLoader只是不响应,直到兵马俑服务器不会再次重新启动。

问题:如何修复/重新配置?我认为,如果由于某种(任何)原因应用程序将挂起/过时/等,它也可能在生产中发生(实际上有时会发生)。

0 投票
3 回答
1681 浏览

java - Mybatis的分布式缓存

有人有过 Mybatis 分布式缓存的生产经验吗?我看到了一些关于 ehcache/Terracotta 的建议,但是之前使用 Terracotta 的经验会让我想远离它(配置和继续运行很复杂)。Hazelcast 似乎是一个有趣的可能性——有人尝试将它用作 Mybatis 的分布式缓存吗?

我们的应用程序有一个相对较大的数据库 (1TB),因此我们想要一个可扩展的解决方案。

0 投票
1 回答
463 浏览

ehcache - 使用 terracotta 设置休眠分布式 ehcache 时的会话工厂问题

我正在尝试使用 Terracotta 在分布式环境中设置 EHCache。在这里,我可以连接应用程序服务器和 Terracotta 服务器,在 terracotta Developer Console 中,我可以看到复制的对象。

但是在应用程序服务器中不断出现以下异常消息,尽管应用程序的其余部分运行正常:

大家好,如果有任何机构可以指导为什么会出现此异常消息以及我们如何解决它。此外,如果有任何关于为休眠应用程序设置兵马俑的综合教程,这对我也会有所帮助。

这里 [CacheByAmitNode8081] 是我在应用服务器中定义的缓存节点的名称。

0 投票
1 回答
1559 浏览

spring - 通过带有 Terracotta 的 ehcache 休眠二级缓存 - 根本不缓存?

我有这个 spring/hibernate 项目,我正在尝试通过 ehcache 和 terracotta 将二级缓存添加到休眠。一切似乎都很好,我什至可以在兵马俑控制台中看到我试图缓存的实体的条目。但是根据数据库中的统计数据和日志,根本没有缓存任何东西!

负载命中率为0%,负载统计也为0。我做错了什么?

这是我所做的,我通过 maven 添加了所需的 jars。

更改了我的休眠属性以启用二级缓存

将 @Cache 注释添加到我的测试实体

这是我非常简单的 ehcache.xml (我还尝试为我的实体设置缓存条目,结果相同)

在我启动我的兵马俑服务器并运行我的测试代码之后

我的日志显示了 100 个不应该发生的 SQL。它还显示命中率为 0%。

这是我的测试运行时来自兵马俑控制台的一些屏幕截图。

为了让它工作,我需要的最后一块是什么?

二级缓存统计 ehcache 概述 实体统计

0 投票
0 回答
750 浏览

tomcat - 带有 Spring Security 的 Terracotta DSO 为 SessionRegistryImpl.java 抛出 NotSerializableException

我们的应用程序堆栈是在 tomcat 7 中运行的 hibernate/spring/spring security/JSF。

我已经下载并安装了开源 Terracotta 3.6.2。

我们要配置 Terracotta DSO。我们正在使用 spring security SessionRegistryImpl.java 来获取登录用户的会话信息,但是这个类是不可序列化的,因此我们的会话变得不可序列化。

遵循以下文档

http://terracotta.org/documentation/web-sessions/installation-guide http://terracotta.org/documentation/terracotta-dso/dso-install http://docs.terracotta.org/confluence/display/docs/配置+指南+和+参考

我们的应用程序中有以下罐子

我有以下 TIM

我不断收到org.springframework.security.core.session.SessionRegistryImpl 的 java.io.NotSerializableException

在这种情况下是否可以使用 Terracotta DSO 配置集群?

tc-config.xml

ehcache.xml

0 投票
2 回答
2729 浏览

java - 应用服务器集群与 Terracotta

我听说过用于 GlassFish 等应用程序服务器以及 Terracotta 的术语“集群”;我试图理解集群一词在与应用程序服务器一起使用时以及与 Terracotta 一起使用时意味着什么。

我的理解是:

如果 GlassFish 服务器是集群的,那么这意味着我们有多个物理/虚拟机,每个都有自己的 JRE/JVM,运行不同的 GlassFish 实例。但是,由于它们是集群的,它们都将通过它们的管理服务器(“DAS”)进行通信,并为所有这些服务器部署相同的应用程序。它们将有效地发挥作用(对最终用户),就好像它们是单个应用程序服务器一样——但现在将负载平衡、故障转移/冗余和可伸缩性添加到组合中。

从本质上讲,Terracotta 是一种产品,它可以让多个 JVM 在不同的物理/虚拟机上运行,​​就好像它们是单个 JVM 一样。

因此,如果我的理解是正确的,则暗示以下内容:

  • 当您需要负载平衡和故障转移容错时,您可以集群应用程序服务器
  • 当任何特定的 JVM 太小而无法容纳您的应用程序并且您需要更多“马力”时,您可以使用 Terracotta
  • 因此,从技术上讲,如果您有一个由 5 个服务器实例组成的 GlassFish 集群;这 5 个实例中的每一个实际上都可以是 Terracotta 实例的数组/集群;这意味着每个 GlassFish 服务器实例实际上是一个 GlassFish 实例,存在于多台机器本身的 JVM 中

如果这些断言/假设中的任何一个不正确,请纠正我!如果我偏离了基础并且显然不了解集群和/或 Terracotta 的目的,请指出我正确的方向!

0 投票
1 回答
727 浏览

https - https中的EhCache terracottaConfig url

我可以使用 Terracota 服务器阵列处理安全环境(例如 HTTPS)吗?

我试图像这样配置 ehcache.xml 文件:

但它仍然是错误的。

如果可能的话,这样做的方法是什么?

0 投票
2 回答
7311 浏览

java - Hazelcast 计划作业(Quartz 支持?)

我知道这对兵马俑是不公平的,但是有没有人尝试使用 Hazelcast 来在集群环境中使用预定的作业?

我可以想象的最简单的实现是以下架构:

  1. 全局 Hazelcast 锁,用于确保只有一台服务器启动 Quartz 配置。
  2. 将实际任务作为 DistributedTask 运行。(这可以稍后完成,目前繁重的计划任务需要处理触发 DistributedTask)
  3. 一旦持有锁的服务器关闭,另一台服务器就会获得锁。

我相信这对于已经拥有 Hazelcast 的人来说将是一个很大的优势,因为他们不需要通过一直打开兵马俑的东西来解决整个开发环境的麻烦。

目前,我编写了最简单的解决方案,即只让一个节点负责执行 Quartz 触发器。由于我只使用类似 Cron 的触发器,因此如果我负责为繁重的触发器任务创建 DistributedTasks,它可能是一个可接受的解决方案。

这是实现它的我的 org.springframework.scheduling.quartz.SchedulerFactoryBean 扩展:

请让我知道我是否遗漏了一些重要的东西,如果可以做到这一点。

我已将这两个文件添加到 github。这是 RAMJobStore 扩展:

https://github.com/mufumbo/quartz-hazelcast/blob/master/src/main/java/com/mufumbo/server/scheduler/hazelcast/HazelcastRAMJobStore.java

这是 Spring SchedulerFactoryBean 扩展:

https://github.com/mufumbo/quartz-hazelcast/blob/master/src/main/java/com/mufumbo/server/scheduler/hazelcast/SchedulerFactoryBean.java

0 投票
2 回答
653 浏览

algorithm - 如何使用 TerracottaJobStore 在 Quartz-Scheduler 中知道哪个节点作业将执行?

我已将 terracotteJobStore 与 Quartz-Scheduler 绑定

terracotteJobStore 如何确定下一个作业应该为哪个节点执行?

哪个算法用于 terracotteJobStore 中的节点选择有什么想法吗?