https://www.mastertheboss.com/jbossas/jboss-cluster/how-to-use-jdbc_ping-to-discover-cluster-nodes/
이 글은 WildFly 애플리케이션 서버에서 클러스터 노드의 초기 검색에 사용할 수 있는 JDBC_PING JGroups 프로토콜에 대한 간단한 안내서라고 보시면 됩니다.
JDBC Ping 개요
이 검색 프로토콜은 공유 데이터베이스에 대한 JDBC 연결을 사용합니다. 구성 속성 또는 DataSource의 JNDI 이름으로 연결 옵션을 정의할 수 있습니다.
기본적으로, 추가 매개변수 없이 프로토콜을 사용할 때 다음의 DDL이 실행됩니다:
CREATE TABLE JGROUPSPING
own_addr varchar(200) NOT NULL,
cluster_name varchar(200) NOT NULL,
ping_data varbinary(5000) DEFAULT NULL,
PRIMARY KEY (own_addr, cluster_name)
하지만 스키마와 사용되는 SQL 문 모두를 사용자 재 정의할 수 있습니다. 권장되는 스키마는 두 개의 문자열 열을 기본 키(primary key)로 사용하는 하나의 테이블을 사용하며(로컬 주소, 클러스터 이름), JGroups에서 필요로 하는 객체들의 직렬화된 형태를 저장하기 위한 세 번째 열을 포함하게 됩니다.
기본 테이블은 최초 연결 시 생성됩니다.
프로토콜 구성
기본 DataSource를 사용하여 JDBC Ping을 구성하려면 TCP 연결의 MPING 소켓 프로토콜을 JDBC_PING으로 교체해 주어야 합니다.
<stack name="tcp">
<transport type="TCP" socket-binding="jgroups-tcp"/>
<!-- <socket-protocol type="MPING" socket-binding="jgroups-mping"/> -->
<jdbc-protocol type="JDBC_PING" data-source="ExampleDS"/>
<protocol type="MERGE3"/>
<socket-protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
<protocol type="FD_ALL"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="pbcast.NAKACK2"/>
<protocol type="UNICAST3"/>
<protocol type="pbcast.STABLE"/>
<protocol type="pbcast.GMS"/>
<protocol type="UFC"/>
<protocol type="MFC"/>
<protocol type="FRAG3"/>
</stack>
그런 다음, 클러스터 채널에 대한 기본 스택으로 TCP를 설정하십시오.
<subsystem xmlns="urn:jboss:domain:jgroups:9.0">
<channels default="ee">
<channel name="ee" stack="tcp" cluster="ejb"/>
</channels>
연결 속성
프로토콜에 적용할 수 있는 사용 가능한 속성은 소스 클래스에서 확인할 수 있습니다:
https://github.com/belaban/JGroups/blob/master/src/org/jgroups/protocols/JDBC_PING.java
다음 테이블은 사용 가능한 속성들을 요약 했습니다:
'프로그래밍' 카테고리의 다른 글
Spring Boot AOP (0) | 2024.02.27 |
---|---|
JGroups-Spring In Action (0) | 2024.02.26 |
신뢰성 있는 메시지 교환을 위한 JGroups (0) | 2024.02.22 |
Spring MVC 내 HandlerInterceptors vs. Filters (0) | 2024.02.16 |
Maven과 AspectJ - 완벽 환경설정 관련 (0) | 2024.02.15 |