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
- 기타 등등..
반응형
'개발이야기 > open source' 카테고리의 다른 글
Pull request를 효과적으로 사용하는 방법 (270) | 2019.04.24 |
---|---|
[asciinema] shell script, terminal 영상으로 녹화하기!! (936) | 2018.04.17 |
[Hazelcast]Java concurrent lock 구현하기 (1790) | 2018.04.08 |
소나큐브 파라미터 정리 (0) | 2018.02.20 |
[Telegraf + influxDB + Grafana]10분만에 데브옵스를 위한 모니터링 시스템 구축하기 (7) | 2018.01.29 |
[Telegraf + influxDB + Grafana]Setup DevOps monitoring system in 10min (0) | 2018.01.28 |