세션클러스터링 작업중.

master
강석 최 2023-02-24 11:51:34 +09:00
parent a27d98eb42
commit eeb3c6c5fe
5 changed files with 52 additions and 29 deletions

View File

@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
@Component @Component
public class TomcatClusterContextCustomizer implements TomcatContextCustomizer { public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
/*
@Value("${tomcat.cluster.static-member-host:}") @Value("${tomcat.cluster.static-member-host:}")
private String staticMemberHost; private String staticMemberHost;
@ -36,6 +37,7 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
private Integer receiverPort; private Integer receiverPort;
@Value("${tomcat.cluster.receiver-max-threads:}") @Value("${tomcat.cluster.receiver-max-threads:}")
private Integer receiverMaxThreads; private Integer receiverMaxThreads;
*/
@Override @Override
public void customize( final Context context ) { public void customize( final Context context ) {
@ -51,40 +53,59 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
private void configureCluster(Engine engine) { private void configureCluster(Engine engine) {
//cluster setting //cluster setting
SimpleTcpCluster cluster = new SimpleTcpCluster(); SimpleTcpCluster cluster = new SimpleTcpCluster();
/*
cluster.setChannelStartOptions(3); cluster.setChannelStartOptions(3);
cluster.setChannelSendOptions(8); cluster.setChannelSendOptions(8);
//channel setting //channel setting
GroupChannel channel = new GroupChannel(); GroupChannel channel = new GroupChannel();
StaticMembershipInterceptor interceptor = new StaticMembershipInterceptor();
StaticMembershipInterceptor interceptor = new StaticMembershipInterceptor();
// 대상 정보 // 대상 정보
StaticMember staticMember = new StaticMember(); StaticMember staticMember = new StaticMember();
staticMember.setHost(staticMemberHost);
staticMember.setPort(staticMemberPort); staticMember.setPort(staticMemberPort);
staticMember.setSecurePort(-1); staticMember.setSecurePort(-1);
staticMember.setHost(staticMemberHost);
staticMember.setUniqueId(staticMemberUniqueId); staticMember.setUniqueId(staticMemberUniqueId);
interceptor.addStaticMember(staticMember); interceptor.addStaticMember(staticMember);
//receiver(현재 자신의 정보) //receiver(현재 자신의 정보)
NioReceiver receiver = new NioReceiver(); NioReceiver receiver = new NioReceiver();
receiver.setAddress(receiverAddress); receiver.setAddress(receiverAddress);
receiver.setPort(receiverPort);
receiver.setMaxThreads(receiverMaxThreads); receiver.setMaxThreads(receiverMaxThreads);
receiver.setPort(receiverPort);
channel.setChannelReceiver(receiver);
channel.addInterceptor(interceptor);
*/
cluster.setChannelSendOptions(6);
//channel
GroupChannel channel = new GroupChannel();
//membership setting
McastService mcastService = new McastService();
mcastService.setAddress("228.0.0.4");
mcastService.setPort(45564); // TCP&UDP port 오픈 필요
mcastService.setFrequency(500);
mcastService.setDropTime(3000);
channel.setMembershipService(mcastService);
//receiver
NioReceiver receiver = new NioReceiver();
receiver.setAddress("auto");
receiver.setMaxThreads(6);
receiver.setPort(5000); // TCP port 오픈 필요
channel.setChannelReceiver(receiver); channel.setChannelReceiver(receiver);
channel.addInterceptor(interceptor); //sender
//sender setting
ReplicationTransmitter sender = new ReplicationTransmitter(); ReplicationTransmitter sender = new ReplicationTransmitter();
sender.setTransport(new PooledParallelSender()); sender.setTransport(new PooledParallelSender());
channel.setChannelSender(sender); channel.setChannelSender(sender);
//interceptor setting //interceptor
channel.addInterceptor(new TcpPingInterceptor()); channel.addInterceptor(new TcpPingInterceptor());
channel.addInterceptor(new TcpFailureDetector()); channel.addInterceptor(new TcpFailureDetector());
channel.addInterceptor(new MessageDispatchInterceptor()); channel.addInterceptor(new MessageDispatchInterceptor());
cluster.addValve(new ReplicationValve()); cluster.addValve(new ReplicationValve());
cluster.addValve(new JvmRouteBinderValve()); cluster.addValve(new JvmRouteBinderValve());
cluster.setChannel(channel); cluster.setChannel(channel);

View File

@ -1,14 +1,15 @@
#tomcat #tomcat
tomcat.ajp.protocol=HTTP/1.1 tomcat.ajp.protocol=HTTP/1.1
#tomcat.ajp.protocol=AJP/1.3
logging.level.org.apache.tomcat: DEBUG logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG logging.level.org.apache.catalina: DEBUG
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
tomcat.cluster.static-member-host=172.80.0.3 tomcat.cluster.static-member-host=118.219.150.34
tomcat.cluster.static-member-port=4040 tomcat.cluster.static-member-port=50542
tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
tomcat.cluster.receiver-address=172.80.0.2 tomcat.cluster.receiver-address=118.219.150.34
tomcat.cluster.receiver-port=4040 tomcat.cluster.receiver-port=50540
tomcat.cluster.receiver-max-threads=4 tomcat.cluster.receiver-max-threads=4
#file upload #file upload

View File

@ -1,14 +1,15 @@
#tomcat #tomcat
tomcat.ajp.protocol=HTTP/1.1 tomcat.ajp.protocol=HTTP/1.1
#tomcat.ajp.protocol=AJP/1.3
logging.level.org.apache.tomcat: DEBUG logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG logging.level.org.apache.catalina: DEBUG
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
tomcat.cluster.static-member-host=172.80.0.2 tomcat.cluster.static-member-host=118.219.150.34
tomcat.cluster.static-member-port=4040 tomcat.cluster.static-member-port=50540
tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
tomcat.cluster.receiver-address=172.80.0.3 tomcat.cluster.receiver-address=118.219.150.34
tomcat.cluster.receiver-port=4040 tomcat.cluster.receiver-port=50542
tomcat.cluster.receiver-max-threads=4 tomcat.cluster.receiver-max-threads=4
#file upload #file upload

View File

@ -1,12 +1,12 @@
#tomcat #tomcat
tomcat.ajp.protocol=AJP/1.3 tomcat.ajp.protocol=AJP/1.3
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
#tomcat.cluster.static-member-host=10.187 tomcat.cluster.static-member-host=10.187
#tomcat.cluster.static-member-port=50540 tomcat.cluster.static-member-port=
#tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2}
#tomcat.cluster.receiver-address=118.219.150.34 tomcat.cluster.receiver-address=10.187
#tomcat.cluster.receiver-port=4042 tomcat.cluster.receiver-port=
#tomcat.cluster.receiver-max-threads=4 tomcat.cluster.receiver-max-threads=
#file upload #file upload
spring.servlet.multipart.location=/backup/faisp/uploadFiles spring.servlet.multipart.location=/backup/faisp/uploadFiles

View File

@ -1,12 +1,12 @@
#tomcat #tomcat
tomcat.ajp.protocol=AJP/1.3 tomcat.ajp.protocol=AJP/1.3
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
#tomcat.cluster.static-member-host=118.219.150.34 tomcat.cluster.static-member-host=10.187
#tomcat.cluster.static-member-port=50540 tomcat.cluster.static-member-port=
#tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
#tomcat.cluster.receiver-address=118.219.150.34 tomcat.cluster.receiver-address=10.187
#tomcat.cluster.receiver-port=4042 tomcat.cluster.receiver-port=
#tomcat.cluster.receiver-max-threads=4 tomcat.cluster.receiver-max-threads=
#file upload #file upload
spring.servlet.multipart.location=/backup/faisp/uploadFiles spring.servlet.multipart.location=/backup/faisp/uploadFiles