Java framework for distributed system
I am looking for a library (or a combination of libraries) to build a java distributed system, made of several applications exchanging data through several pairwise connections (no mapreduce). For the moment I did an expolration of existing libraries and I could only d开发者_开发问答iscard what I'v found. Here are my requirements:
- Easy discovery of systems at runtime (possibly through a central server/directory)
- Lightweight and low latency messages (no CORBA, RMI, SOAP,. etc.)
- Decentralized communications (no LINDA like)
- Easy enough to use and learn (no JXTA)
- Compatible with GPL license (so GPL, BSD, etc.)
Do you have any suggestion ? Thanks in advance
Are you familiar with JGroups? You could use it to design your own architecture. They provide easy-to-use multicast abstraction.
I'm a big fan of JGroups, but I recently discovered hazelcast and will probably give it a try. It might be what you're looking for.
You might want to take a peek at Terracotta ( http://www.terracotta.org/ )
You could take a look at Jade if you like multi-agents paradigm http://jade.tilab.com/
I think Apache River (formerly Jini) should at least be mentioned. It never received too much attention, probably also because it had (don't know if it still has) a rather steep learning curve. Anyhow, it is under active development:
http://river.apache.org/
JBoss, ok, ok, it is not a framework but they have a number of projects that sound just like what you want.
You may use Redisson - distributed and scalable Java data structures (BitSet
, BloomFilter
, Set
, SortedSet
, Map
, ConcurrentMap
, List
, Queue
, Deque
, BlockingQueue
, BlockingDeque
, ReadWriteLock
, Semaphore
, Lock
, AtomicLong
, CountDownLatch
, Publish / Subscribe
, RemoteService
, ExecutorService
, LiveObjectService
, ScheduledExecutorService
) on top of high performance Redis server.
精彩评论