분산 키 값 조회 시스템이 필요합니다
-
10-07-2019 - |
문제
수백 GB의 데이터를 통해 키 가치 조회를 수행하는 방법이 필요합니다. 이상적으로는 분산 된 해시 테이블을 기반으로하는 것입니다. 결함 내전형과 오픈 소스 여야합니다.
상점은 지속적이어야하지만 메모리에 데이터를 캐시하여 속도를 높이기 위해 이상적입니다.
동시 읽기 및 여러 기계의 쓸 수 있어야합니다 (읽기는 100 배 더 일반적입니다). 기본적으로 목적은 웹 서비스에 대한 사용자 메타 데이터를 빠르게 초기 조회하는 것입니다.
누구든지 추천 할 수 있습니까?
해결책
체크 아웃하고 싶을 수도 있습니다 헤이즐 캐스트. 배포/분할, 슈퍼 라이트, 쉽고 무료입니다.
java.util.Map map = Hazelcast.getMap ("mymap");
map.put ("key1", "value1");
문안 인사,
-탈립
다른 팁
유스 케이스에 따라 테라코타 필요한 것일 수 있습니다.
당신은 아마도 그것이 지속적이든 아니든, 메모리에 있든 없든지를 지정해야 할 것입니다. 시도 할 수 있습니다. http://www.danga.com/memcached/
분산 된 해시 테이블에는 태피스트리, 코드 및 생과자가 포함됩니다. 이 중 하나는 귀하의 요구에 맞아야합니다.
OpenChord는 유망한 것 같습니다. 그러나 나는 또한 고려할 것이다 BDB, 또는 다른 비 SQL 해시 테이블을 분산시킬 수있는 다른 비 SQL 해시 테이블 (스토리지 노드의 수가 최소한 거의) 일정하는 경우 적절한 서버를 얻기 위해 클라이언트의 키를 해시 할 수 있습니다.
분산 된 맵 구조를 시도하십시오 레디슨, 그것은 기반입니다 레 디스 섬기는 사람. 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();
DNS는이 작업을 수행 할 수있는 기능이 있습니다. 각 레코드가 얼마나 큰지 (8GB의 작은 데이터입니까?) 작동하는지 모르겠지만 효과가있을 수 있습니다.