open source alternatives to oracle coherence? [clo

2019-01-21 08:47发布

问题:

Are there any open source alternatives to oracle coherence?

(btw, how much does coherence cost anyways?)

回答1:

EhCache provides a decent replicated cache but has nowhere near the feature set Coherence provides.



回答2:

Hazelcast is an open source, transactional, distributed caching solution for Java. It is released under Apache license.

Hazelcast is actually a little more than a distributed cache; it is distributed implementation of queue, topic, map, multimap, lock, executor service for Java.



回答3:

Infinispan is looking promising.



回答4:

JBoss Cache and EHCache are decent clustered cache solutions. But none of them have all the features and a nice admin console like Tangosol Oracle Coherence which is indeed the most advanced product in this category. For the price, there is a "Buy Now" button on the right of the Oracle Coherence web page.



回答5:

Memcached is also an great open source alternative that is used by a lot of high-profile & high-traffic/volume apps.



回答6:

Project Voldemort is great (free) alternative to coherence.



回答7:

Guava Libraries

Looks promising as Google used them in their own products



回答8:

I have been watching for a good alternative also. The closest overall in features I have found are Terracotta and Redis but it would be helpful to know what aspects of Coherence are important to your project.



回答9:

I have been investigating open source distributed caches and have focused on EHCahe and JBoss Pojo Cache.

They are both decent products, however the deal breaker is that my use case requires me to distribute an object graph and maintain shared references on all my nodes. EHCache cannot handle this. It uses standard java serialisation, and as such, shared references are lost.

e.g. if I have manager/employee object hierarchy, i want a single 'manager' object on all my nodes, with references to their employees. With EHCache, I dont get this, as the java serialiser copies all dependent objects. With JBoss Pojo Cache, my object graph is preserved.

The downside is that JBoss needs to instrument your classes (the primitives that make up your object graph are stored in a tree structure behind the scenes). This can cause some issues when running in an OSGi environment.

JBoss uses JGroups as its communication stack, you can choose between multicast or TCP/IP to manage communication between the nodes.

Hope this helps.



回答10:

Check for "Berkeley DB" which is a open source and works same as Coherence