본문 바로가기

개발이야기/open source

IMDG 소개 및 하젤케스트 오픈소스 솔루션 소개



IMDG가 필요한 이유?

일반적인 1 server, 1 application 구조에서는 memory상에 자신이 쓰고자 하는 자료구조(map, lock, list 등)를 올려두고 쓰면된다.


그림. 일반적인 1 server, 1application 구조



그러나..


만약 *(many) server, *(many) application 구조에서 특정 자료구조(map, lock, list 등)를 공유해서 사용하고 싶다면 In-Memory Data Grid가 그 해법이다. 그 중에서 추천하는 것은 JVM위에서 돌아가는 Hazelcast를 강추한다.


그림. Hazelcast(IMDG)를 사용하여 자료구조를 공유하여 동시에 사용가능


IMDG란?

IMDG : In memory data grid

  • 더 빠른 결과를 제공하기 위한 메모리 분산형 데이터 store system.
  • MMDB(Main memory data base) 처럼 메모리에 데이터를 저장하는 점은 동일
  • 특징
    • 데이터가 여러 서버에 분산저장
    • 각 서버는 active모드로 동작
    • scale out 혹은 scale in 가능


Hazelcast 소개

The Hazelcast IMDG operational in-memory computing platform helps leading companies worldwide manage their data and distribute processing using in-memory storage and parallel execution for breakthrough application speed and scale.
https://hazelcast.com/
  • IMDG로서 hazelcast 사용용도
    • In-memory data grid
      하젤케스트는 분산되어 있는 애플리케이션에서 다양한 크기의 데이터를 빠르게 접근 가능
    • Caching
      최상의 퍼포먼스로 간단하게 구현가능한 캐쉬
    • Microservices
      마이크로서비스의 데이터 공유 목적으로 사용가능
    • Web session clustering
      사용자의 웹 세션을 여러 애플리케이션에서 공유가능
    • Messaging
      하젤케스트의 broadcast messaging system을 사용가능
    • In-Memory NoSQL
      Key-value 용도의 하젤케스트 NoSQL
    • Application Scaling
      Spring framework와 함께 사용하여 스케일아웃이 매우 용이, dynamically scale, prevent the loss of data after crashes.
상기는 하젤케스트 공식사이트에서 소개하는 장점들이다. 그러나 상기 장점을 포함하여 더 좋은 장점이 바로 JVM환경 위에서 돌아간다는 점이다.

Redis나 RabbitMQ 등 설치형 memory data base와는 다르게 JVM위에서 돌아가는 Hazelcast는 서버(local or remote)에 설치가 필요없으며 코드로 data grid를 구성가능.


Hazelcast IMDG 3.10 Open Source Architecture

상기 아키텍쳐 구성도를 보면 몇가지 특징을 읽어낼 수 있다.

  • JVM위에서 돌아감.
    (jdk 6,7,8 지원)
  • Storage는 on-heap store(memory)
  • IPv4, IPv6 네트워크 통신
  • 다양한 API 제공
    • java.util.concurrent(Lock)
    • Map
    • Set
    • List
    • JCache
    • 기타 등등..