※ 세션 클러스터링 기본
- JBoss Node Name
Node 별로 Unique하게 설정: -Djboss.node.name
- jvmRoute
Node별로 jvmRout 또는 instance-id 설정
UseJK=true로 설정
- 클러스터링 관련 네트웍 설정
Clustering 방식 설정: -Djboss.default.jgroups.stack
UDP멀티캐스트 주소설정: -Djboss.default.multicast.address
UDP멀티캐스트 포트: 45688 (standalone-ha.xml)
최초 연결할 클러스터 멤버: -Djgroups.tcpping.initial_hosts
TCPPING 설정: standalone-ha.xm
- 기본 사용포트 확인
configuration/standalone-ha.xml
<socket-binding-group
name="standard-sockets" default-interface="public"
port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/> <socket-binding name="ajp" port="8009"/> <socket-binding name="http" port="8080"/> <socket-binding name="https" port="8443"/> <socket-binding
name="jgroups-mping" port="0"
multicast-address="${jboss.default.multicast.address:230.0.0.4}"
multicast-port="45700"/> <socket-binding name="jgroups-tcp" port="7600"/> <socket-binding name="jgroups-tcp-fd" port="57600"/> <socket-binding
name="jgroups-udp" port="55200"
multicast-address="${jboss.default.multicast.address:230.0.0.4}"
multicast-port="45688"/> <socket-binding name="jgroups-udp-fd" port="54200"/> <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> <socket-binding name="remoting" port="4447"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> |
※ 세션 클러스터링 설정
1) TCP / UDP 공통사항
NODE_NAME설정
Node별로 Name을 Unique하게 설정을 한다.
env.sh
-Djboss.node.name=$NODE_NAME" |
jvmRoute 또는 instance-id 설정
env.properties
... jvmRoute=server1 |
또는 instance-id 지정
설정파일
<subsystem xmlns="urn:jboss:domain:web:2.1" default-virtual-server="default-host" instance-id="server1" native="true"> |
useJK 설정
env.properties
... UseJK=true |
2) UDP방식 설정
env.sh
export MULTICAST_ADDR=230.1.0.1 # Default로 45688 사용 (standalone-ha.xml) # jgroups setting export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.jgroups.stack=udp" export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.multicast.address=$MULTICAST_ADDR" |
3) TCP방식 설정
env.sh
# jgroups setting export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.jgroups.stack=tcp" export JAVA_OPTS=" $JAVA_OPTS -Djgroups.tcpping.initial_hosts=192.168.0.56[7600],192.168.0.56[7700], " |
standalone-ha.xml
<stack name="tcp"> <transport type="TCP" socket-binding="jgroups-tcp"/> <protocol type="TCPPING" socket-binding="jgroups-mping"> <property name="initial_hosts"> ${jgroups.tcpping.initial_hosts:localhost:7600,localhost:7600} </property> <property name="port_range"> 0 </property> <property name="timeout"> 3000 </property> <property name="num_initial_members"> 3 </property> </protocol> <protocol type="MERGE2"/> <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> <protocol type="FD"/> <protocol type="VERIFY_SUSPECT"/> <protocol type="pbcast.NAKACK"/> <protocol type="UNICAST2"/> <protocol type="pbcast.STABLE"/> <protocol type="pbcast.GMS"/> <protocol type="UFC"/> <protocol type="MFC"/> <protocol type="FRAG2"/> <protocol type="RSVP"/> </stack> |
※ Sticky Session 설정
env.properties
jvmRoute=server1 # 위에 언급된 instance-id를 통해서도 설정 가능 UseJK=true |
※ Application별 클러스터링 설정
어플리케이션 의 web.xml
<distributable/>
라인 추가 시 enable
주석시 disable
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>simple test</display-name>
<distributable/>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
<!--
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
</web-app>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>simple test</display-name>
<distributable/>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
<!--
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
</web-app>
'WAS' 카테고리의 다른 글
GossipRouter 설정 방법 (3) | 2019.07.23 |
---|---|
[Tomcat] DB 패스워드 암호화 (0) | 2019.06.27 |
IIS && EAP 연동 (0) | 2018.05.30 |
[Apache] Permission denied: make_sock: could not bind to address [::]:80 (0) | 2018.04.30 |
[limits.conf] 유저 리소스 파라미터 설정 (0) | 2018.04.24 |