Skip to content

HashCitrine/testDistributedDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

testIMDG

IMDG (In-Memory Data Grid)

IMDG

  • Redis와 같이 데이터를 Disk가 아닌 In-Memory에 저장하며, 이에 Data Grid 구조를 이용해 분산 환경에 적용 가능하도록 만들어진 분산 메모리 시스템
  • In-Memory의 빠른 데이터 처리 속도와 분산 환경의 고가용성, 확장성의 장점을 가짐

Hazelcast

  • 오픈 소스 IDMG
  • 각 Cluster Member가 Master - Slave가 아닌 Peer-to-Peer의 관계를 가짐
  • SQL-like 구문 사용 가능
  • DistributedMultiMap, Distributed Collections 자료형 지원
  • DistributedTopic & DistributedEvent 기능을 통해 Message Queue처럼 이용 가능
  • Hazelcast를 Docker Container로 복수 구성하여 테스트
services:
  hazelcast-manager:
    image: hazelcast/management-center:latest-snapshot
    ports:
      - "8080:8080"
    networks:
      - hazelcast-network
  hazelcast-imdg-1:
    image: hazelcast/hazelcast:5.3.6
    ports:
      - "5701:5701"
    environment:
      HZ_NETWORK_PUBLICADDRESS: {HOST_IP}:5701
      HZ_CLUSTERNAME: hello-world
    networks:
      - hazelcast-network
  hazelcast-imdg-2:
    ports:
      - "5702:5702"
    # 'ports' 이외 옵션은 'hazelcast-imdg-1'와 동일
  hazelcast-imdg-3:
    ports:
      - "5703:5703"
    # 'ports' 이외 옵션은 'hazelcast-imdg-1'와 동일
    
networks:
  hazelcast-network:
    driver: bridge

Example Test

$ hz-cli --targets hello-world@{host_ip}:5701 sql
Connected to Hazelcast 5.3.6 at [{host_ip}]:5701 (+2 more)  # 같은 Network의 5702, 5703 포트를 이용하는 Hazelcast가 자동으로 인식된 상태
Type 'help' for instructions
sql> CREATE MAPPING my_distributed_map TYPE IMap OPTIONS ('keyFormat'='varchar','valueFormat'='varchar');
OK
sql> SINK INTO my_distributed_map VALUES
   > ('1', 'John'),
   > ('2', 'Mary'),
   > ('3', 'Jane');
OK
sql> SELECT * FROM my_distributed_map;
+--------------------+--------------------+
|__key               |this                |
+--------------------+--------------------+
|3                   |Jane                |
|1                   |John                |
|2                   |Mary                |
+--------------------+--------------------+
3 row(s) selected

참조