问题标签 [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 投票
2 回答
2693 浏览

java - 当 Terracotta 服务器用作带有 Hibernate 的 EHCache 的后端时,它会做什么?


我的 DAL 是用它实现的Hibernate,我想将EHCache其用作具有分布式功能(用于可伸缩性和 HA)的二级缓存。
看到EHCache只提供分布式缓存Terracotta我的问题是Terracotta服务器实例的作用是什么?它还保存数据吗?它是否只协调分区缓存部分之间的分布?
我的困惑主要来自关于 TSA解释,它说服务器保存数据,但我认为在我的场景中缓存和Terracotta服务器可能是合并的。我对么?
如果服务器确实保存了数据,那么为什么瓶颈不应该从数据库转移到Terracotta服务器呢?

更新: Affe 的回答回答了我的问题的第二部分,这是重要的部分,但以防万一有人来寻找第一部分,我会说 TC 服务器必须保存内存中 EHCache 保存的所有数据,所以如果您想要一个分布式缓存(不复制),那么 L2(TC 服务器)也必须自己保存所有对象。

提前致谢,
Ittai

0 投票
1 回答
1564 浏览

java - 使用 Terracotta 的 EHCache 如何处理分布式堆中的驱逐?

我们最近开始使用 EHCache 和 Terracotta 来为应用程序数据运行分布式数据缓存。假设任何客户端节点的堆大约有 2gb,而服务器节点有 8gb。我们生成大量数据,每天大约 1.5gb。

通常,任何一个客户端都会使用特定日期的数据集(大约 1.5gb),但服务器显然必须保存所有这些数据集。

当堆变大时,我希望到期的工作方式是基于 LRU。因此,如果任何特定的 L1 客户端缓存变得太大(例如,从第 1 天切换到第 2 天),我希望它会从 L1 中驱逐所有第 1 天的数据。如果在我们获得第 6 个数据集时 L2 变得太大,那么最旧的数据集将完全过期。对于生存时间或空闲时间值应该是什么,我真的没有任何意见,所以我没有设置它们。

经过几天的研究,我认为这并不像我期望的那样工作。例如,我运行了一个 L2 最大元素为 4 的测试。我用四个元素填充它。然后我去放第五个元素。Cache.put() 无异常返回,但紧随其后的具有相同键的 Cache.get() 返回 null!

所以我的问题是,我如何让 EHCache+Terracotta 做我想做的事情,或者至少做一些接近的事情?

0 投票
1 回答
205 浏览

java - 在 Grails 应用程序中添加/修改域类后重新启动 terracotta

我们有一个 Grails 应用程序,我们正在使用 Terracotta 进行缓存。我们注意到,每次我们在现有域类中添加一些字段或添加新域类时,应用程序都会因“意外的数据块结束...”而崩溃,我们需要重新启动 terracotta 才能让事情再次运行。

我们拥有的架构是:
- 负载均衡器后面的两台服务器,每台运行一个 grails 应用程序实例
- 一个单独的数据库服务器
- 在其中一个 Web 服务器上运行的 Terracotta

我们在那里遗漏了什么吗?我们可以做些什么来避免在每个域修改部署中出现这些停机时间?

更新:似乎是兵马俑问题:http
://forums.terracotta.org/forums/posts/list/5065.page 3.5 版应该可以解决这个问题。让我们拭目以待吧!

谢谢,
伊拉克利斯

0 投票
1 回答
412 浏览

java - Tanuki 包装器软件是否可以与进行检测的引导类路径 jar 一起使用?

我们正在使用 AS3 和 Java 以及 SmartFox 服务器,并且已经在 Linux 上成功使用了 Tanuki 包装器几个月。然而,现在我们正在尝试将 Terracotta 添加到我们的项目中。Terracotta 提供集群,并且如这些链接中所讨论的,使用 Java 工具。

http://www.smartfoxserver.com/forums/viewtopic.php?p=16741#16741

http://www.smartfoxserver.com/forums/viewtopic.php?t=7524

谁能告诉我 Tanuki 是否应该使用仪器和 -Xbootclasspath/p:my-terracotta-boot-file-here.jar - 如果是这样,我可以做些什么来找出为什么当我尝试时它似乎不起作用它?

提前致谢!

0 投票
2 回答
678 浏览

java - 将 Terracotta 与 Java EE Application Server Cluster 结合起来有意义吗?

Terracotta 用于扩展 JVM 应用程序。以下是维基百科的简短描述:

Terracotta 是用于 Java 的开源 JVM 级集群软件。它将集群作为运行时基础架构服务提供,通过在应用程序下方集群 JVM,而不是集群应用程序本身,简化了集群 Java 应用程序的任务。

如果您想扩展 Java SE 应用程序,我明白为什么应该使用 Terracotta。

我的问题:如果您还使用 Java EE 应用程序服务器(例如 WebSphere AS),那么使用 Terracotta 是否有意义,它已经支持应用程序集群?什么时候应该同时使用两者,为什么?

0 投票
2 回答
1094 浏览

cluster-computing - Terracota Cluster 仍然是开源的吗?

如果是的话,在哪里可以找到它?!根据这个infoq 条目,他们已经开源了它。但是现在,他们的网站上还没有这样的产品。

0 投票
0 回答
400 浏览

cluster-computing - 如何在没有 Terracotta 的情况下设置 red5 集群?

如何在没有 Terracotta 的情况下设置 red5 (1.0.0RC) 集群?有没有分步文档?

谢谢。

0 投票
2 回答
68 浏览

java - 最大限度地减少部署期间的客户中断

您如何将新代码部署到生产环境中以不中断客户体验?

让我们假设一个电子商务网站处于负载平衡环境中,其中没有共享会话状态。Tomcat 是应用服务器。

我能想到的唯一想法是(1)使用JavaRebel,但我没有这方面的经验,也不知道会出现什么问题(可能是会话对象不匹配,例如,如果你从一个类中删除一个成员)(2 ) 实时监控您的用户在购物体验中的位置,并防止将新商品添加到购物车中;等到所有现有购物者完成订单或过期;然后关闭服务器并部署新代码。

有任何想法吗?或者在这种情况下,使用 terracotta 之类的东西在 Web 服务器之间共享会话数据至关重要?再说一遍,如何将新代码部署到已删除或添加会话对象成员的 Web 服务器?

0 投票
2 回答
13558 浏览

ehcache - EHCache 与 Terracotta Vs Infinispan

我们正在新项目的设计阶段工作,我们需要决定缓存框架。我们需要决定是否使用带有 Terracotta 或 Infinispan 的 EHCache 来满足缓存要求?谁能告诉我 EHCache 和 Infinispan 的优缺点?

提前致谢。

0 投票
1 回答
316 浏览

java - 需要通用/动态序列化/编组,类似于 Terracotta

问题:我使用的软件 Lift 具有“用户会话”,其中可以放置任何类型的对象,这些对象在用户请求之间保留(具有 GC 超时)。虽然它易于使用且功能强大,但它有一个主要缺点:对象不可序列化,因此您无法将它们分发到其他服务器实例以实现高可用性。

是否有 API/工具可以获取随机对象,通过反射分析其结构,创建可以提取所有对象数据的编组器/解组器,并以可用于将对象分发到的格式返回它其他JVM。编组器/解组器本身应该是可序列化的。应该有一种方法来明确定义应该忽略某些数据,例如使用瞬态,并且还应该可以识别某些引用的对象实际上是必须以特殊方式处理的系统对象(单例)。理想情况下,它应该是一个迭代过程,因此您可以限制要编组的对象的“大”程度。

这有点类似于 Terracotta 所做的,只是我想实现自己的传输和后端,并且我不想使用它们的“增强器”,因为很难将类的包限制为修改,因此它必须在运行时修改我的所有类以防万一,这将非常昂贵。

编辑:严格来说,拥有自己的传输和后端并不是绝对必须的,但是 Terracotta 的服务器是单点故障,我想要一个完全分布式的系统,在那里我可以强制进行最少的复制级别,并且我可以将请求转发到拥有用户会话副本的服务器。