In-Memory Data Grid
In-Memory Data Grid (IMDG)๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ถ์ฐ ์บ์ฑ ์ํํธ์จ์ด ๊ธฐ์ ์ด๋ค.
IMDG ๋ ๋ค์์ ๋ฌผ๋ฆฌ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ํ์ฑํ๊ณ , ์ด ํด๋ฌ์คํฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์บ์ฑํ๋ค.
IMDG๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค.
- ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ํ: IMDG๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋์ฉ๋์ ๋ฉ๋ชจ๋ฆฌ ํ์ ํ์ฑํ ์ ์๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ๊ณผ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅ์ผ ํ๋ค.
- ๋ฐ์ดํฐ ์ ์ฌ ๋ฐ ์บ์ฑ: IMDG๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ฑฐ๋ ์บ์ฑํ์ฌ ๋น ๋ฅธ ์๋ต ์๊ฐ์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ํ ์ค์๊ฐ ์ ๊ทผ ๋ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
- IMDB ๊ธฐ๋ฅ: IMDG๋ In-Memory Database (IMDB)์ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฐ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- ๋์คํฌ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์บ์ฑ: IMDG๋ ๋์คํฌ ๊ธฐ๋ฐ์ ์ด๊ธฐ์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฏธ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํจ์ผ๋ก์จ, ๊ธฐ์กด ์์คํ ์ ์ ์งํ๋ฉด์๋ ๋ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ ๊ณตํ ์ ์๋ค. ์ด๋ ๊ธฐ์กด ์์คํ ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋๋ค.
๋ฐ๋ผ์ IMDG๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ณ ์ฑ๋ฅ ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ ๊ณตํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค ๋ฐ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅ์ผ ํฉ๋๋ค.
Hazelcast ์ํคํ ์ฒ
- Hazelcast ํด๋ฌ์คํฐ ๊ตฌ์ฑ:
- ๊ฐ ์๋ฒ์๋ Hazelcast Member๋ผ๋ Java ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉฐ, ์ด๋ฌํ Member๋ค์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ์ฐ๊ฒฐ๋์ด ํด๋ฌ์คํฐ๋ฅผ ํ์ฑํ๋ค.
- Disk ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์บ์ฑ:
- Hazelcast๋ ๋ค์ํ ๋์คํฌ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS, MongoDB ๋ฑ)์ ์ฐ๋๋์ด ๊ธฐ์กด์ ์ ์ฅ๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํ ์ ์๋ค.
- ์ด๋ฅผ ํตํด ๋์คํฌ์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ์บ์ฑํจ์ผ๋ก์จ ๋น ๋ฅธ ์๋ต ์๊ฐ๊ณผ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํ๋ค.
- ๋ถ์ฐ๋ ๋ฐ์ดํฐ ๊ทธ๋ฆฌ๋:
- Hazelcast๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ฏ๋ก, ๋ฐ์ดํฐ์ ๋ํ ๋น ๋ฅธ ์ก์ธ์ค์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋ฐ์ดํฐ์ ๋ณต์ ๋ฐ ๋ถ์ฐ ์ ์ฅ์ ํตํด ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ์ฅ์ ๋ด์ฑ์ ์ ๊ณตํ๋ค.
Hazelcast ์ค์
- gradle dependency ์ถ๊ฐ
// hazelcast
implementation 'com.hazelcast:hazelcast:4.0.2'
- Hazelcast instance ์ค์
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hazelcast.com/schema/config
http://www.hazelcast.com/schema/config/hazelcast-config-4.0.xsd">
<network>
<!-- <port auto-increment="true" port-count="20">5701</port>-->
<join>
<multicast enabled="true"/>
</join>
</network>
<map name="assets_device">
<time-to-live-seconds>120</time-to-live-seconds>
<eviction size="1000" max-size-policy="USED_HEAP_PERCENTAGE" eviction-policy="LRU"/>
</map>
</hazelcast>
Hazelcast DataType
- IMap
- MultiMap
Reference
- https://docs.hazelcast.com/imdg/latest/
- https://blog.microideation.com/2018/10/04/simple-two-node-hazelcast-cache-cluster-using-tcp-ip/
- https://www.baeldung.com/java-hazelcast
- https://www.javainuse.com/hazel/hazelcast_hello
- https://hazelcast.com/use-cases/hibernate-second-level-cache/
- https://brunch.co.kr/@springboot/56
- https://docs.spring.io/spring-framework/reference/integration/cache.html
- https://docs.hazelcast.org/docs/3.7/manual/html-single/index.html
- https://supawer0728.github.io/2018/03/11/hazelcast/
- https://wannaqueen.gitbook.io/spring5/spring-boot/undefined-1/40.
- https://www.tutorialspoint.com/hazelcast/hazelcast_serialization.htm
- https://github.com/MustafaOrkunAcar/hazelcast-code-samples
'ํด๋ผ์ฐ๋ ์ปดํจํ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ปค ์ปค๋ ๋๋ฒ๊น #1 (1) | 2024.04.21 |
---|