티스토리 뷰

728x90
반응형

 

프로젝트 환경

  • springframework
  • Maven

Hazelcast 환경 세팅

 

1. pom.xml hazelcast 선언

<dependency>
	<groupId>com.hazelcast</groupId>
	<artifactId>hazelcast-all</artifactId>
	<version>3.12.13</version>
</dependency>

 

2.context-hazelcast.xml 생성 (java로 생성해도됨)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:hz="http://www.hazelcast.com/schema/spring"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.hazelcast.com/schema/spring
https://www.hazelcast.com/schema/spring/hazelcast-spring-3.12.xsd">


	<!-- 
	클라이언트 모드 	
	1. 세션복사기능을 사용 하는 경우 instance name을 web.xml에 있는 설정과 맞춰야 함
	-->
	<hz:client id="instance">
		<hz:instance-name>instance</hz:instance-name>
		<hz:connection-strategy reconnect-mode="ASYNC" async-start="true" >
			<hz:connection-retry enabled="true"  />
		</hz:connection-strategy>
		<hz:group name="test" password="test!23" />
    	<hz:network connection-timeout="1000"
                redo-operation="true"
                smart-routing="true">
       		<hz:member>${host}:5801</hz:member> <!-- 개발서버 -->
    	</hz:network>
	</hz:client>
</beans>

 

 

3.web.xml hazelcast 세팅

<!-- hazelcast sesion clusturing -->
	<filter>
	    <filter-name>hazelcast-filter</filter-name>
	    <filter-class>com.hazelcast.web.spring.SpringAwareWebFilter</filter-class>
	    <!-- web session 이름, context-hazelcast에서 설정한 값으로 지정합니다. -->
	    <init-param>
	        <param-name>map-name</param-name>
	        <param-value>my-sessions</param-value>
	    </init-param>
	   	<!--
	   		sticky-session옵션 // 
	   		항상 같은 곳에서 요청(분산된 hazelcast에서 요청되는 것에 대한 것) 
	   	 -->
	    <init-param>
	        <param-name>sticky-session</param-name>
	        <param-value>true</param-value>
	    </init-param>
	    <!-- 
	    세션 유지를 위한 세션이름명, 
	    test로 변경 이유는 헤이즐로 하고 있다는 부분을 노출 하지 않기 위함. -->
	    <init-param>
	        <param-name>cookie-name</param-name>
	        <param-value>test.sessionId</param-value>
	    </init-param>
	    <!-- 
	    	캐싱을 위해서 작성한 bean의 이름과 도일하게 일치하지 않으면 추가로 instance를 생성 함
	    	use-client = true 인경우는 클라이언트의 instance명을 기준으로 검색 해서 사용함! 
	    -->
	    <init-param>  
		    <param-name>instance-name</param-name>
		    <param-value>instance</param-value>
		</init-param>
		<!-- serve 죽을 때 같이 죽도록(이건안건듬) -->
		<init-param>
	        <param-name>shutdown-on-destroy</param-name>
	        <param-value>true</param-value>
	    </init-param>
	    <!-- 클라이언트 사용여부 -->
	    <init-param>  
		    <param-name>use-client</param-name>
		    <param-value>true</param-value>
	  </init-param>
	</filter>

	<filter-mapping>
		<filter-name>hazelcast-filter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
	<listener>
		<listener-class>com.hazelcast.web.SessionListener</listener-class>
	</listener>
	<!--  //hazelcast session replacation -->

 

com.hazelcast.web.SessionListener : hazelcast 세션을 갱신 처리하기 위한 리스너

 

 

hazelcast-client cache 환경세팅

 

4. context-ehcache.xml ( 캐시를 이용하기 위한 환경 설정 xml 기준)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
	<!-- 
	캐시를 사용합니다.  hazelcast 를 이용한 캐시처리를 위한 환경세팅
	 -->
	<cache:annotation-driven />
	
	<cache:annotation-driven cache-manager="cacheManager" />
	<bean id="cacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager">
		<constructor-arg ref="instance"/>
	</bean>
</beans>

 

연관 페이지

hazelcast-client 적용하기1(이론편) (tistory.com)

 

hazelcast-client 적용하기1(이론편)

hazelcast란 Opensource In-Memory Data Grid로 IMDG로 줄여서 불리는 제품이다. 방식에는 Client/Server 방식과 Embedded 방식으로 나눠진다. 개발참고 Configuring Hazelcast in Spring While configuring Hazelcast within the Spring con

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
글 보관함