繁体   English   中英

需要一个分布式键值查找系统

[英]Need a distributed key-value lookup system

我需要一种方法来跨越(可能)数百GB的数据进行键值查找。 理想情况下基于分布式散列表的东西,与Java很好地协同工作。 它应该是容错的,并且是开源的。

商店应该是持久的,但理想情况下会将数据缓存在内存中以加快速度。

它应该能够支持来自多台机器的并发读写(尽管读取将是100倍更常见)。 基本上,目的是快速初始查找Web服务的用户元数据。

谁能推荐任何东西?

你可能想看看Hazelcast 它是分布式/分区的,超级精简,简单而且免费。

java.util.Map map = Hazelcast.getMap ("mymap");
map.put ("key1", "value1");

问候,

-talip

Open Chord是Java中CHORD协议的实现。 它是一个分布式哈希表协议,可以完美地满足您的需求。

根据用例, Terracotta可能正是您所需要的。

您可能应该指定它是否需要持久性,内存与否等等。您可以尝试: http//www.danga.com/memcached/

分布式哈希表包括Tapestry,Chord和Pastry。 其中一个应该适合您的需求。

OpenChord听起来很有希望; 但我也会考虑BDB或任何其他非SQL哈希表,使其分布式变得非常容易(如果存储节点的数量至少是(几乎)不变的话),只需在客户端上散列密钥即可获得适当的服务器。

尝试Redisson的分布式Map结构,它基于Redis服务器。 使用Redis群集配置,您可以跨1000个服务器分割数据。

用法示例:

Redisson redisson = Redisson.create();

ConcurrentMap<String, SomeObject> map = redisson.getMap("anyMap");
map.put("123", new SomeObject());
map.putIfAbsent("323", new SomeObject());
map.remove("123");

...

redisson.shutdown();

nmdb听起来就像你需要的那样。 分布式,在内存缓存中,具有持久的磁盘存储。 目前的后端包括qdbm,berkeley db和(最近在向开发人员发送快速电子邮件后添加) 东京内阁 键/值大小有限,但我相信如果你不需要TICP支持,可以取消。

DNS有能力做到这一点,我不知道你的每条记录有多大(8GB吨的小数据?),但它可能有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM