공유할 서비스 선택

TECH


TECH

Middleware (IMDG)를 활용한 session 구성 -2 오픈소스 (Hazelcast, Apache Ignite) 설치방법

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 107회 좋아요 0회 작성일 24-08-19 14:57

본문

안녕하세요. "미들웨어" 입니다. 

 

금일은 지난번 진행한 "Data Grid란? (IMDG)를 활용한 session 구성 -1" 에 이어서 session grid 를 구성하는 방법에 대해 설명해보겠습니다.

지난 가이드에서는 데이터그리드 기반 세션관리에 대해 정리를 해봤습니다.

그럼 실제 환경에서 session grid service는 어떤식으로 구성되고 사용되는지 확인해보겠습니다.

 

 

 

  1. Session Grid Service 구성 아키텍처

 

Data Grid를 활용하면 여러대의 was 서버에서 관리하던 session 을 한개 ~ 여러대의 Data Grid에서 관리할 수 있습니다.

아래 이미지를 참고해보세요.

 

99538f5055a7c060f936a7dbf396be0f_1724046737_9898.png 

 

 

  • 독힙한 공유 메모리(가상 데이터 그리드) 사용

  • 스케일 아웃에 의한 확장성과 가용성을 확립하여 구성

  • WAS 가 shutdown 되더라도 session 이 유지되는 구조 가능

  • MSA 환경으로 개발구현시 여러곳에서 관리되던 사용자 session을 통합관리 운영 가능

  • Google 처럼 한개의 계정으로 여러 서비스를 통합 로그인 운영할 수 있습니다



2. 오픈소스로 Session Grid 를 구현하는 방법  

오픈소스로는 Hazelcast와 Apache Ignite이 비슷한 기능을 제공합니다.

  • Hazelcast

  • Apache Ignite

Java 기반의 Session Grid를 구성하는 방법을 설명해보겠습니다.

오픈소스로 Hazelcast와 Apache Ignite를 사용한 Session Grid 설치 방법을 적어보겠습니다.

 

 


3. Hazelcast 기반의 Session Grid 설치

Hazelcast는 데이터 그리드로서 세션 관리에 많이 사용되며, 분산된 환경에서 세션을 관리하는 데 효과적입니다

3-1. Java 설치: Hazelcast는 Java 기반이므로, 먼저 JDK를 설치합니다.

3-2. Hazelcast 다운로드: Hazelcast의 최신 버전을 공식 웹사이트에서 다운로드합니다.

3-3. 다운로드한 Hazelcast 파일의 압축을 해제합니다

3-4. bin 디렉토리에 있는 스크립트 파일(start.sh 또는 start.bat)을 사용하여 Hazelcast 인스턴스를 시작합니다.

3-5. 클러스터 설정

  • hazelcast.xml 또는 hazelcast.yaml 설정 파일을 수정하여 클러스터 멤버를 정의합니다.

  • 네트워크 구성, 멤버쉽, 파티셔닝 등을 설정하여 세션 데이터를 분산 저장할 수 있습니다.

3-6. Hazelcast 세션 관리 라이브러리 추가

Maven 또는 Gradle을 사용하는 경우, 프로젝트의 pom.xml 또는 build.gradle 파일에 Hazelcast 세션 관리 라이브러리를 추가합니다.

 <dependency>

<groupId>com.hazelcast</groupId> <artifactId>hazelcast-wm</artifactId> <version>5.1.2</version> </dependency>

 

web.xml 파일에 Hazelcast 세션 클러스터링 설정을 추가합니다. 

 <filter>

<filter-name>hazelcast-filter</filter-name> <filter-class>com.hazelcast.web.WebFilter</filter-class> <init-param> <param-name>map-name</param-name> <param-value>default</param-value> </init-param> </filter> <filter-mapping> <filter-name>hazelcast-filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

 

 

3-7. Hazelcast 클러스터 연결

Hazelcast 클러스터에 연결되도록 애플리케이션을 설정하면, 세션 데이터가 자동으로 클러스터 노드에 분산 저장됩니다.

 

 

4. Apache Ignite 기반의 Session Grid 설치

Apache Ignite는 인메모리 데이터 그리드로서, 세션 관리에 사용할 수 있습니다.

4-1. Apache Ignite 설치

4-2. Ignite 다운로드: 최신 버전을 다운로드합니다.

https://ignite.apache.org/download.cgi

99538f5055a7c060f936a7dbf396be0f_1724046881_2562.png
 

4-3. Ignite 설정

Ignite 설정 파일(ignite.xml 등)을 편집하여 클러스터 구성 및 데이터 저장소를 정의합니다.

세션 데이터를 캐싱하기 위해 적절한 캐시 설정을 구성합니다.

4-4. Ignite 세션 관리 라이브러리 추가

pom.xml 또는 build.gradle 파일에 Ignite의 웹 세션 관리 라이브러리를 추가합니다.

 <dependency>

<groupId>org.apache.ignite</groupId> <artifactId>ignite-web</artifactId> <version>2.15.0</version> </dependency>

 

 

4-5. Ignite 세션 클러스터링 설정

web.xml 파일에서 Ignite 세션 필터를 설정합니다.

 <filter>

<filter-name>IgniteWebSessionsFilter</filter-name> <filter-class>org.apache.ignite.cache.websession.IgniteWebSessionFilter</filter-class> <init-param> <param-name>IgniteConfigurationFilePath</param-name> <param-value>/path/to/ignite/config.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>IgniteWebSessionsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

4-6. 세션 관리 테스트

웹 애플리케이션을 실행하고, 세션 데이터가 Ignite 클러스터에 저장되는지 확인합니다

이와 같은 설정을 통해 Hazelcast나 Apache Ignite를 사용하여 Session Grid를 구축할 수 있습니다. 이들은 고가용성, 확장성, 분산된 세션 관리를 지원하며, 대규모 웹 애플리케이션에서 효과적으로 사용될 수 있습니다.

이번 가이드를 통해서 Coherence , Hazelcast, Apache Ignite 에서 session grid를 활용하는 방법에 대해 정리를 해봤습니다.

상황에 맞는 SW를 설치해서 운영해보시면 도움이 되실거라 생각됩니다.

그럼.. 열공하세요~!!

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
열람중 Middleware 미들웨어 아이디로 검색 전체게시물 08-19 108
열람중
(IMDG)를 활용한 session 구성 -2 오픈소스 (Hazelcast, Apache Ignite) 설치방법

카테고리 : Middleware

108 0
작성자 : 미들웨어 24/08/19
113 Middleware 미들웨어 아이디로 검색 전체게시물 08-09 131
(IMDG) Data Grid란? (IMDG)를 활용한 session 구성 -1

카테고리 : Middleware

131 0
작성자 : 미들웨어 24/08/09
112 Middleware 미들웨어 아이디로 검색 전체게시물 07-22 180
(오픈소스 활용-33) "ISTIO 이스티오" 쿠버네티스 서비스 시각화 구현에 필요한 데모설치

카테고리 : Middleware

180 0
작성자 : 미들웨어 24/07/22
111 Middleware 미들웨어 아이디로 검색 전체게시물 07-10 242
(Apache) mod_wl.so 에서 sticky session 사용방법 정리

카테고리 : Middleware

242 0
작성자 : 미들웨어 24/07/10
110 Middleware 미들웨어 아이디로 검색 전체게시물 06-24 281
(오픈소스 활용-32) Apache Kafka 란? 다운로드 및 샘플 소개

카테고리 : Middleware

281 0
작성자 : 미들웨어 24/06/24
109 Middleware 미들웨어 아이디로 검색 전체게시물 06-07 466
(Apache) Apache & Webtier에서 Nginx와 동일한 비동기 방식 처리 하기 (MPM-event)

카테고리 : Middleware

466 0
작성자 : 미들웨어 24/06/07
108 Middleware 미들웨어 아이디로 검색 전체게시물 05-21 572
(오픈소스 활용-31) (부하테스트 Tool) Jmeter 를 활용한 JDBC 부하테스트 방법 -2

카테고리 : Middleware

572 0
작성자 : 미들웨어 24/05/21
107 Middleware 미들웨어 아이디로 검색 전체게시물 05-07 818
(오픈소스 활용-30) (부하테스트 Tool) Jmeter 를 활용한 JDBC 부하테스트 방법 -1

카테고리 : Middleware

818 0
작성자 : 미들웨어 24/05/07
106 Middleware 미들웨어 아이디로 검색 전체게시물 04-22 555
(오픈소스 활용-29) was에서 T4CConnection (Locked) 발생시 해결방법

카테고리 : Middleware

555 0
작성자 : 미들웨어 24/04/22
105 Middleware 미들웨어 아이디로 검색 전체게시물 04-08 487
(오픈소스 활용-28) Java Flight Recorder 이란? Java 모니터링을 구현가능

카테고리 : Middleware

487 0
작성자 : 미들웨어 24/04/08
Total 114건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 chlux.co.kr All rights reserved.
상단으로Top