1. Tomcat Session Clustering 간 Multicast를 위한 라우팅 설정이 필요하다.
위와 같이 라우팅 설정이 되어있지 않으면 해당 명령어로 주소를 추가하자.
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0(디바이스명)
2. Session Clustering에 사용되는 포트를 방화벽에서 허가해줘야 한다.
CentOS 6의 경우에는 vi /etc/sysconfig/iptables 로 아래의 내용을 추가하고 service iptables restart 실행
-A INPUT -m state --state NEW -m tcp -p tcp --dport 45564 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 45564 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4000:4100 -j ACCEPT
Tomcat Documentation에 따르면 <distrubutable />이 하는 역할은 다음과 같다.
The<Manager>element defined inside the<Cluster>element is the template defined for all web applications that are marked<distributable/>in theirweb.xmlfile. However, you can still override the manager implementation on a per web application basis, by putting the<Manager>inside the<Context>element either in thecontext.xmlfile or theserver.xmlfile.
web.xml에 <distrubutable />이 설정된 모든 어플리케이션이 server.xml에 설정한 <Manager> 설정대로 관리되는 듯 하다.
테스트
정상적으로 세션 클러스터링이 설정되었을 경우 테스트 방법은 아래와 같다.
1. Tomcat A, B 기동
2. Tomcat A 또는 B에서 처음으로 세션이 생성됨
3. 세션이 생성된 서버를 Shutdown
4. 나머지 서버의 세션 값이 처음 생성된 세션 값과 동일하면 설정 완료
1. Tomcat A, B 기동
2. Tomcat A 또는 B에서 세션 생성 확인 (Tomcat A에서 세션이 생성)
세션 값을 확인하는 방법은 여러가지가 있으나 여기서는 Chrome 브라우저의 개발자도구를 사용하였음.
3. 세션이 생성된 서버를 Shutdown(Tomcat A)
4. 나머지 서버(Tomcat B)의 세션 값이 처음 생성된 세션 값과 동일한지 확인
세션 값이 1EF398C1540F9380C4163C2F6062171F.worker1 으로 동일한 것을 확인할 수 있다.
만약 Session Clustering이 설정되지 않았다면 xxxxxxxx.worker2로 세션 값이 설정되었을 것이다.
Hazelcast IMDG는 전 세계 유수의 기업들이 혁신적인 어플리케이션 속도와 확장성을 위해 In-Momory 저장소와 병렬 실행을 통해 데이터를 관리하는 IMDG 플랫폼이다.
카테고리
In Memory Data Grid Platform
특징
l클라이언트 (C#/.NET, C++, Java, Node.js, Near Cache for Java Smart Cllient, Portable Serialization, Plugguable Serialization)
l분산 캐싱
l분산 계산
l분산 쿼리
l통합 클러스터링
l스탠다드 (jcache, apache)
l클라우드와 가상화 지원
l저장소 [High-Density Memory Store(HDMS)]
l클러스터 관리
l클라이언트-서버 프로토콜
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
Hazelcast IMDG
Infinispan
개요
Infinispan은 아파치 라이선스 2.0을 따르는 분산 in-memory key/value 데이터 저장이 가능한 IMDG 플랫폼이다.
카테고리
In Memory Data Grid Platform
특징
lIn-memory 로컬, 클러스터 캐시
l코드 실행 클러스터링
lHot Rod 원격 프로토콜
l원격 서버
l만료
l보안
l설정 / 개발
l지속성
l트랜잭션
l관리 / 모니터링
l통합
l인덱스 / 쿼리
l컨테이너/클라우드 통합
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
Infinispan
EHCACHE
개요
Ehcache는 오픈소스 표준 캐시로, 성능을 향상시키고 데이터베이스의 부하를 감소시키며 확장성을 단순화 한다. 강력하고, 검증되고, 모든 기능을 갖춘 Java 기반 캐시이며 다른 유명한 라이브러리 및 프레임워크와 통합될 수 있기 때문에 가장 널리 사용된다.
카테고리
In Memory Data Grid Platform
특징
lJavaGenerics를 활용하고 캐시 상호 작용을 단순화하는 고급 API
lJava.cacheAPI(JSR-107)와의 완벽한 호환성
l오프 호스트(Off-host)스토리지 기능(핫 스팟 전용 캐시 포함)
ljavax.cache 지원으로 스프링 캐싱 및 하이버네이트 통합
라이선스
오픈 소스
가격
문의
지불 정책
무료
무료 체험
체험판 제공
회사
Ehcache
SCALEOUT STATESERVER
개요
ScaleOut StateServer의 IMDG는 빠른 액세스를 위해 데이터를 메모리에 저장하고 모든 서버를 사용하여 접근 요청을 병렬로 처리한다.
카테고리
In Memory Data Grid Platform
특징
l종합적이고 사용이 쉬운 APIs
l병렬 쿼리
l강력한 기능들
l강력한 관리 도구
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
ScaleOut StateServer
RED HAT JBOSS DATA GRID
개요
데이터 캐싱과 임시 데이터 저장소는 가장 일반적인 데이터 그리드 사용 사례이다.
JBoss Data Grid와 같은 데이터 그리드는 가장 자주 접근하는 데이터에 대해 신속한 IMDG로 구현된다.
카테고리
In Memory Data Grid Platform
특징
l빠른 행동
l신속한 확장
l항상 사용 가능
l내결함성
l생산성 향상
l항상 보안 유지
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
Red Hat JBoss Data Grid
GRIDGAIN ENTERPRISE EDITION
개요
Apache Ignite 기반의 GidGain in-memory 컴퓨팅 플랫폼은 새로운 디스크 기반 어플리케이션 또는 기존의 디스크 기반 어플리케이션이 1,000배 이상 빠르게 쿼리를 실행하고 확장할 수 있도록 지원한다. 페타 바이트 단위의 메모리 내 데이터를 저장할 수 있다.
카테고리
In Memory Data Grid Platform
특징
lAn In-Memory Data Grid
lAn In-Memory Compute Grid
lAn In-Memory SQL Grid
lAn In-Memory Streaming Engine
lAn In-Memory Service Grid
l하둡을 위한 가속 지원
l분산 메세징
l분산 이벤트
l분산 데이터 구조
l분산 파일 시스템
l통합 API
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
GridGain Enterprise Edition
WEBSPHERE EXTREME SCALE
개요
WebSphere eXtreme Scale은 탄력적이거 확장성있는 IMDG이다.
데이터 그리드는 여러 서버에 걸쳐 동적으로 어플리케이션 데이터와 비즈니스 로직을 캐싱, 파티션 분할, 복제 및 관리한다.
카테고리
In Memory Data Grid Platform
특징
l설치 관리자
l모든 자바 64 비트 런타임 환경 지원
l웹 콘솔과 xscmd 유틸리티에서 전체 캐시를 보고 쿼리와 무효화 작업
lxscmd 유틸리티를 하용하여 환경 정보 검색
l스프링 캐시 제공
l자유 프로필 지원
leXtreme Scale 클라이언트에 대한 연결 어플리케이션에 JTA 지원
lJTA를 사용하여 특정 카타롤그 도메인에 연결하기 위한 CatalogDomainManager API
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
WebSphere eXtreme Scale
ORACLE COHERENCE
개요
Oracle Coherence는 기업이 자주 사용하는 데이터에 대한 빠른 접근을 제공하여 어플리케이션을 예측 가능하게 확장할 수 있도록 지원하는 업계 최고의 IMDG 솔루션이다.
카테고리
In Memory Data Grid Platform
특징
l지속성
l연합 캐싱
l향상된 보안 기능
l자바 8 기능 지원
l일반적인 지원
l클러스터 포트와 주소 관리
l멀티테넌시(Multitenancy)
l비동기 NamedCache API
lTruncate 명령
lSliding Expiry
l동적 관리 모드
l동적 스레드 풀
lCoherence-JVisualVM Plug-In
lCoherence CohQL
lServer-Sent Events
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
Oracle Coherence
IBM WEBSPHERE APPLICATION SERVER
개요
IBM WebSphere Application Server는 개인, 회사, 공용 또는 클라우드에서 사용할 수 있는 유유연하고 안전한 JavaEE7 런타임 환경을 제공한다. 비용을 절감하거나 어플리케이션 투자로부터 새로운 가치를 창출하거나 출시 기간을 단축하려는 경우 WebSWphere가 모든 비즈니스 요구 사항에 적합하다.
카테고리
In Memory Data Grid Platform
특징
l빠르고 쉬운 다운로드 (100mb 설치 공간 필요)
l단시간의 설치 및 배포
l개방형 플랫폼과의 완벽한 통합
l웹, 모바일 및 OSGI 어플리케이션을 위한 JavaEE 웹 프로파일
l마이크로 서비스에 이상적인 런타임
l단일. 중간, 대규모 서버 구축에 대한 보안 및 지원
l여러 어플리케이션 서버 인스턴스에 대한 웹 계층 클러스터링
l최대 25대의 서버 로드 밸런싱
lJava Message Service JDBC, Java Batch, FullEJB 등이 포함
lHIS 로드 밸런싱을 위한 무제한 서버 허용량
l대규모 확장성을 위한 중앙 집중식 관리(수천 개의 서버)
l오픈 소스 및 Z/OS 플랫폼과의 완벽한 통합
라이선스
독점
가격
문의
지불 정책
정기 지불
무료 체험
체험판 제공
회사
IBM WebSphere Application Server
TERRACOTTA ENTERPRISE SUITE
개요
Terracotta Enterprise Suite는 데이터 용량이 높은 모든 비즈니스 및 산업에 성능 및 가용성을 위해 설계된 분산 IMDG이다.
In-Memory Data Grid(IMDG)는 RAM(Random Access Memory)에 상주하는 데이터 구조로, 여러 서버에 분산되어 존재한다. 최근의 64비트 및 멀티 코어 시스템의 발전으로 하드 디스크와 같은 전기 기계식 대용량 저장 매체의 필요 없이 수 테라바이트의 데이터를 RAM에 완전히 저장하는 것이 실용화되었다.
업계 분석 회사인 Gartner Inc.에 따르면 IMDG는 속도(velocity), 가변성(variability) 및 용량(volume)과 같은 빅 데이터의 “Big-Three V’s”를 처리하는데 적합하다고 한다. IMDG는 초당 수십만 건의 메모리 내 데이터 업데이트를 지원하며 대량의 데이터를 지원하는 방식으로 클러스터링하고 확장할 수 있다.
IMDG의 구조
[IMDG Platform의 하나인 Apache Ignite]
어플리케이션 서버(AS)에는 IMDG가 제공하는 클라이언트 라이브러리가 있고, 이 라이브러리를 이용해 IMDG에 접근한다. IMDG에서 사용하는 데이터 모델은 Key-Value 모델이며 키를 이용해 데이터를 분산시켜 저장할 수 있다.
IMDG의 특징 및 장단점
데이터가 여러 서버에 분산되어 저장된다.
각 서버는 active 모드로 동작한다.
데이터 모델은 보통 객체 지향형(serialize)이고 non-relational이다.
필요에 따라 서버를 추가하거나 줄일 수 있는 경우가 많다.
테이블과 같은 전통적인 데이터베이스 특징이 아니다.
Lock, Transaction, Sharding을 지원한다.
장점
하드 디스크로 데이터를 메모리에 쓰고 읽을 수 있기 때문에 성능이 향상된다.
데이터 그리드는 쉽게 확장 가능하고 업그레이드를 쉽게 구현할 수 있다.
관계 구조보다 Key-Value 데이터 구조가 어플리케이션 개발자들에게 유연성을 제공한다.
기술적 이점으로 더 빠른 의사결정과 더 높은 생산성, 향상된 고객 서비스를 제공한다.
DBMS의 부하를 IMDG 서버로 분산함으로써 고질적인 병목구간을 해소한다.
자주 변경되거나 조회가 발생하는 정보를 메모리에 상주시켜 성능을 높이는 캐시 서버로 활용할 수 있다.
단점
IMDG 클라이언트 사용으로 인한 메모리 샤용량 증가
데이터 변경으로 인한 무효화(invalid)가 발생이 잦을수록 성능 저하
데이터 일관성이 깨질 수 있음
IMDG Platform
IMDG Platform은 다음과 같은 기능들을 제공한다.
Management Center : 관리자 콘솔에서 메모리 내의 데이터 그리드 전체를 제어하고 모니터링할 수 있다.
이를 통해 네트워크에 있는 모든 IMDG 인스턴스를 관리할 수 있다.
Extended and standard query : 표준 보고 도구에서 메모리 내의 데이터 그리드에 접근할 수 있다.
JDBC와 호환되는 데이터베이스에 접근하는 것과 유사한 IMDG에 접근할 수 있다.
기본적으로 SQL을 기반으로 하며 표준 JDBC 커넥터를 사용하여 IMDG를 연결할 수 있다.
Mirror service : 기존의 back-office 보고 시스템과의 원활한 통합이 가능하다. 전체 IMDG에서 기존 데이터베이스 또는 기타 데이터 소스에 이르기까지 투명한 데이터 지속성을 지원한다.
SQL-based continuous query support : 적절한 데이터를 해당 어플리케이션 로컬 메모리 근처로 가져온다.
Real-time event notification : FIFO, 느린 클라이언트 지원, 컨텐츠 기반 라우팅, pub/sub, batching 등 메세징 시스템에서 제공하는 기능을 제공한다.