티스토리 뷰

728x90
반응형

hazelcast란

  • Opensource In-Memory Data Grid로 IMDG로 줄여서 불리는 제품이다.
  • 방식에는 Client/Server 방식과 Embedded 방식으로 나눠진다.
  • 개발참고
 

Configuring Hazelcast in Spring

While configuring Hazelcast within the Spring context, you can also pass values through the Spring property placeholders, as shown below. ${my.cluster.name} ...

docs.hazelcast.com

 

사용배경

 

기존 프로젝트는 서버 2개를 운영중에 있는 사이트로 톰켓 클러스터링을 이용하여 세션을 공유하고 있지만 캐시는 공유되고 있지 않은 상황이었습니다.

해당 사이트는 메인 화면을 db에 템플릿으로 저장하여 그 화면을 캐싱하여 메인화면에 보여지고 있는 프로세스였습니다.

하지만 기존 사이트는 캐시를 공유하고 있지 않아 한쪽에서 만약 메인화면에 데이터 변화가 있을 경우 다른 한쪽에는 반영이 바로 되지 않는 문제가 있었습니다.

그리하여 서로 공유할 수 있는 Near Cache 기능이 필요하였고 그러기 위해선 IMDG 기술이 필요로 하였습니다. 

redis cluster를 이용할 수 있었겠지만 공공기관의 특성상 좀 더 안정적인 시스템이 필요로 하였고 java에 특화되고 기능 관리 및 코드 관리가 좀 더 친절하게 세팅되어있어 관리하기에 편한 hazelcast를 선택하게 되었습니다.

 

 

hazelcast 방식 종류

 

Embedded VS Client/Server

  • Embedded 모드는 Hazelcast 데이터와 Java API가 동일한 JVM 위에서 구동하게 됩니다. Hazelcast와 Java API가 독립적이지 못하여 확장이 불가능합니다. 그리고 만약 hazel 또한 늘어나는 형태가 되므로 메모리 사용량이 증가합니다.
  •  Client/Server 모드는 Hazelcast 데이터와 Java API가 독립적으로 존재하게 됩니다. 그리하여 확장성에 있어 가능합니다. 그리고 하나의 Hazelcast에 여러개의 서버를 공유할 수 있기에 좀 더 메모리 사용에 부담이 덜하게 됩니다.

 

Embedded (이해를 위한 사진)

: Java application 과 함께 같은 JVM 위에서 Hazelcast cluster가 생성이 된다.

Embedded 모드 구조

 

Client/Server(이해를 위한 사진)

: Hazelcast cluster의 서버가 Client App(Java Application) 과 독립적으로 존재하여 통신을 하게된다.

 

Client/Server 모드 구조

 

Near Cache와 Local Cache 차이

 

  • Local Cache는 일반적인 Application에서 각각 가지게 되는 In-Memory-disk를 말합니다. 이러한 경우 scale-out이 발생한 경우 각각의 cache가 존재하기만 할 뿐 공유는 불가능하게 됩니다. 그렇게 될 경우 일관성이 보장이 어려워지게 됩니다.
  • Near Cache는 Cache의 데이터에 변동이 발생하였을경우 Cache Cluster에 저장된 Near Cache에 공유하게 되고 Eventual Consistency를 보장하게 됩니다. 즉 scale-out시 일관성있는 정보를 클라이언트에 전달할 수 있습니다.

 

연관 페이지

Hazelcast-client 적용하기(실전편1) (tistory.com)

 

Hazelcast-client 적용하기(실전편1)

프로젝트 환경 springframework Maven Hazelcast 환경 세팅 1. pom.xml hazelcast 선언 com.hazelcast hazelcast-all 3.12.13 2.context-hazelcast.xml 생성 (java로 생성해도됨) instance ${host}:5801 3.web.xml hazelcast 세팅 hazelcast-filter com

ghgo195.tistory.com

hazelcast-client 적용하기(실전편2) (tistory.com)

 

hazelcast-client 적용하기(실전편2)

hazelcast 환경설정 1. 리눅스 서버 (centos) 2. nginx 사용 서버 띄우기 및 프로젝트 활성화 확인 hazelcast.org 에서 tar.gz 파일을 다운로드 합니다. 리눅스 서버 기준 자기가 원하는 곳에 파일을 압축 해제

ghgo195.tistory.com

 

728x90
반응형
250x250
반응형
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함