问题描述
这是在一群服务器上运行应用程序的能力,意图分配负载并提供额外的冗余。
我看过一个演示文稿对于,我对它印象深刻。
知道任何其他人吗?
- ((以前称为Tangosol Coherence;商业版;基于,从未正式通过);
- GigaSpaces (商业版;基于,是);
- ,你提到过(开源:);
- 与(开放源代码:;
- (开放源代码:; (开源:;和
- 毫无疑问还有其他几个。
现在我还没有使用过所有这些,我已经使用过或调查过它们中的大多数。
GridGain和GigaSpaces更集中于比缓存和(imho)最适合计算网格而不是数据网格(请参阅)。我发现GigaSpaces是一个非常有趣的技术,它有几个许可选项,包括免费版和免费的初创公司完整版。
Coherence和Terracotta尝试处理缓存作为,这是一个公平的自然抽象。我已经使用了很多Coherence,这是一款优秀的高性能产品,但并不便宜。兵马俑我不太熟悉。 Coherence的文档我发现有时缺乏一些,但它确实是一个强大的产品。
OSCache我主要用作减少内存使用和碎片的手段Java Web应用程序,因为它具有相当整洁的JSP标记。如果你看过编译过的JSP,你会看到他们做了很多字符串连接。这个标签可以让你有效地将一段JSP代码和HTML的结果缓存到一个字符串中,这在某些情况下可以大大提高性能。
EHCache是一个简单的缓存解决方案,我也用在Web应用程序中。尽管不是分布式缓存,但它可以做到这一点。我倾向于认为它是一个快速和肮脏的解决方案,但这也许是我的偏见。memcached在PHP世界(尤其是在Facebook等网站中使用)尤其普遍。这是一个非常简单和轻松的解决方案,它的优点是它不会在同一个进程中运行,并且如果这对您很重要,那么您将拥有更好的与其他技术堆栈的互操作性选项。
This is the ability to run your application on a cluster of servers with the intent to distribute the load and also provide additional redundancy.
I've seen a presentation for GridGain and I was very impressed with it.
Know of any others?
There are several:
- Terracotta (open source, based on Mozilla Public License);
- Oracle Coherence (formerly Tangosol Coherence; commercial; based on JSR 107, which was never adopted officially);
- GigaSpaces (commercial; based on JavaSpaces API, part of Jini);
- GridGain, which you mentioned (open source: LGPL);
- memcached with a Java client library (open source: BSD License;
- EHCache (open source: Apache Software License;
- OSCache (open source: modified Apache License; and
- no doubt several others.
Now I haven't used all of these but I've used or investigated the majority of them.
GridGain and GigaSpaces are more centred around grid computing than caching and (imho) best suited to compute grids than data grids (see this explanation of compute vs data grids). I find GigaSpaces to be a really interesting technology and it has several licensing options, including a free version and a free full version for startups.
Coherence and Terracotta try to treat caches as Maps, which is a fairly natural abstraction. I've used Coherence a lot and it's an excellent high-performance product but not cheap. Terracotta I'm less familiar with. The documentation for Coherence I find a bit lacking at times but it really is a powerful product.
OSCache I've primarily used as a means of reducing memory usage and fragmentation in Java Web applications as it has a fairly neat JSP tag. If you've ever looked at compiled JSPs, you'll see they do a lot of String concatenations. This tag allows you to effectively cache the results of a segment of JSP code and HTML into a single String, which can hugely improve performance in some cases.
EHCache is an easy caching solution that I've also used in Web applications. Never as a distributed cache though but it can do that. I tend to view it as a quick and dirty solution but that's perhaps my bias.
memcached is particularly prevelent in the PHP world (and used by such sites as Facebook). It's a really light and easy solution and has the advantage that it doesn't run in the same process and you'll have arguably better interoperability options with other technology stacks, if this is important to you.
这篇关于什么是最适合Java的库来使网格/集群启用你的应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!