问题标签 [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.
java - 有 Java 集群的经验吗?
想听听人们关于他们在 java 集群方面的经验(即实施 HA 解决方案)。又名。terracotta、JGroups 等。它不一定是 Web 应用程序。编写自定义独立服务器的经验也会很棒。
更新:我会更具体一点 -> 对 Web App 集群不感兴趣(除非它可以被拉出并独立运行)。我知道它有效。但我们需要的不仅仅是会话集群。从编程的便利性、支持的拓扑(即单个数据中心与 WAN 上)、支持的节点数量等方面检查解决方案。面临的问题,解决方法。目前我在 Terracotta 和 JGroups 上做一些 POC(概念证明)工作,看看它是否值得我们的应用程序(它是独立的,在 Web 容器之外)付出努力。
java - 分布式并发控制
我已经为此工作了几天,我找到了几种解决方案,但没有一个非常简单或轻量级。问题基本上是这样的:我们有一个由 10 台机器组成的集群,每台机器都在多线程 ESB 平台上运行相同的软件。我可以相当容易地处理同一台机器上的线程之间的并发问题,但是不同机器上相同数据的并发呢?
本质上,该软件接收请求以通过 Web 服务将客户数据从一个企业提供给另一个企业。但是,客户可能存在也可能不存在于其他系统上。如果没有,我们通过 Web 服务方法创建它。所以它需要一种测试和设置,但我需要某种信号量来阻止其他机器引起竞争条件。我之前遇到过为一个本地客户创建两次远程客户的情况,这并不是很理想。
我在概念上玩弄过的解决方案是:
使用我们的容错共享文件系统来创建“锁定”文件,这些文件将由每台机器根据客户进行检查
在我们的数据库中使用一个特殊的表,并锁定整个表以便对锁定记录进行“测试和设置”。
使用 Terracotta,一种有助于扩展的开源服务器软件,但使用的是中心辐射模型。
使用 EHCache 同步复制我的内存“锁”。
我无法想象我是唯一遇到过这种问题的人。你是怎么解决的?您是自己做的还是有最喜欢的第 3 方产品?
java - 我可以使用 Terracotta 来扩展 RAM 密集型应用程序吗?
我正在评估 Terracotta 以帮助我扩展当前受 RAM 限制的应用程序。它是一个协同过滤器,每个用户存储大约 2 KB 的数据。我想使用 Amazon 的 EC2,这意味着我被限制为 14GB 的 RAM,这为我提供了大约 700 万用户的有效每服务器上限。我需要能够超越这个规模。
根据我目前的阅读情况,我认为 Terracotta 的集群堆可以大于每台服务器上的可用 RAM。拥有一个 30GB 或更多的有效集群堆,其中每台服务器仅支持 14GB 是否可行?
每个用户的数据(其中大部分是浮点数组)变化非常频繁,可能每分钟数十万次。没有必要将这些更改中的每一项都在发生时同步到集群中的其他节点。是否可以只定期同步一些对象字段?
java - 在 Terracotta 中使用“脏读”安全吗?
“脏读”,意思是读取一个对象的值,即使它被另一个线程写锁定,在 Terracotta 的网站上有描述,但我听说不应该使用它们,即使你不关心这种可能性当你脏读锁定的对象时,你可能会得到旧数据。
有没有人有在 Terracotta 中使用脏读的经验,如果你不关心读取旧值的可能性,它们是否可以安全使用?
java - 有使用 Terracotta 开源的经验吗?
有没有人有使用 Terracotta 的开源产品而不是他们的企业产品的经验?具体来说,我很感兴趣在没有企业工具的情况下使用 terracotta 来管理集群是否值得?
过度简化的使用总结:我们是一家预算有限的小型初创公司,需要处理数百万条记录并扩展为每天数十万的页面浏览量。
java - 关于使用 Terracotta 作为持久性解决方案
将 Terracotta 用作持久性解决方案(替换数据库)是个好主意吗?我特别想知道数据完整性问题和对事务系统的支持。
java - 对于大型 Java 数据网格技术,您会推荐什么:Terracotta、GigaSpaces、Coherence 等?
我一直在阅读 Java 平台的所谓“数据网格”解决方案,包括 Terracotta、GigaSpaces 和 Coherence。我想知道是否有人有使用这些工具的实际经验并可以分享他们的经验。我也很想知道人们使用过什么规模的部署:我们是在谈论 2-4 个节点集群,还是您使用过比这更大的东西?
我被 Terracotta 吸引是因为它对 Hibernate 和 Spring 的“直接”支持,我们大量使用了这两者。我也喜欢它如何根据配置装饰字节码并且不需要您针对“网格 API”进行编程的想法。我不知道使用显式 API 方法的工具有什么优势,但如果它们确实存在,我很想听听它们。:)
我还花时间阅读有关 memcached 的信息,但我更感兴趣的是听取有关这三个特定解决方案的反馈。如果有人同时使用这两种方法,我很想知道它们如何与 memcached 进行对比。
java - 您认为 Terracotta 是成熟的产品吗?
我只是不知道。我的意思是,有一些话题让我不相信这些。
例如,最新的稳定版本(3.0.0-stable)有一个损坏的 Eclipse 插件,根本无法工作。此外,尝试在版本之间进行升级是一个巨大的麻烦,因为所有服务器都与所有版本号不完全相同的客户端不兼容。
我还没有完全描述,但似乎 Terracotta 很快就会成为一个容易的瓶颈。
你有什么想法,StackOverflow?您是否成功地使用了 Terracotta,或者您是否也觉得它有点……不成熟?
java - Terracotta + Compass = Hibernate + HSQLDB + JMS?
我目前需要一个高性能的java存储机制。
这表示:
1)我有 10,000 多个具有 1 - 多关系的对象。
2)对象每 5 秒更新一次,最近的更新在系统故障的情况下保持不变。
3)对象需要在合理的时间内(1-5秒)可查询。(即:给我所有具有此时间戳的对象或给我这些位置边界内的所有对象)。
4)对象需要在各种 Glassfish 安装中可用。
目前:
我一直在使用 JMS 来分发对象,使用 Hibernate 作为 ORM,并使用 HSQLDB 来提供所需的可恢复性。
我对表演并不完全满意。尤其是其中的 JMS 部分。
在做了一些 Stack Overflow 研究之后,我想知道这是否是一个更好的解决方案。请记住,我对 Terracotta 给我的东西没有经验。
我会使用 Terracotta 在系统中分布对象,而其他东西需要能够“查询”这些对象的属性。
这听起来合理吗?它会满足这些性能限制吗?我应该考虑哪些其他解决方案?
java - 关于 Terracotta 和 Servlet/共享线程
我有一个需要分发的系统,其工作方式如下。由 tomcat 服务的 Servlet 启动并产生具有大量共享(分布式)字段的线程。因此,我将线程设置为根,并尝试从我的 servlet 构造函数中正常生成线程。但是,日志记录表明我尝试共享的 Runnable 的构造函数永远不会完成。什么可能导致这种情况?
在我的 servlet 中,我有一个线程实例,我尝试将其作为根共享,并且日志记录表明一切都很好,直到实现可运行的类 (UpdaterThread) 的构造函数结束。
我有以下内容:
小服务程序:
打印“创建新线程”;updaterThread = new UpdaterThread(args); 打印“启动线程。”;新线程(更新线程).start();
现在,我从未在我的 tomcat 控制台输出中看到“启动线程”,尽管我可以看到直到 UpdaterThread 构造函数末尾的所有打印语句。UpdaterThread 维护一个对映射(由 servlet 共享)、一个字符串、一个 SQL 连接、一个语句、一个 ReentrantReadWriteLock、一个 Long 以及一个临时布尔值和 Long 不共享的引用。
在 UpdaterThread 的构造函数中,我传递了对共享映射的引用和字符串的值。如果没有启用兵马俑,我可以超越这一点。什么会导致 tomcat 和 terracotta 挂起而没有任何错误消息?在调用以后的方法之前,不会使用 rrwl 锁,但是我在程序执行中从来没有走那么远。帮助?