1

This file contains the usual Keycloak server configuration with the addition of WildFly10 High Availability extensions like Infinispan HA cache and JGroups HA communication channels and their configuration settings.

             <stacks>
                <stack name="udp">
                    <transport type="UDP" socket-binding="jgroups-udp"/>
                    <protocol type="PING"/>
                    <protocol type="MERGE3"/>
                    <protocol type="FD_SOCK"/>
                    <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>
                <stack name="tcp">
                    <transport type="TCP" socket-binding="jgroups-tcp"/>
                    <protocol type="JDBC_PING">
                        <property name="datasource_jndi_name">java:jboss/datasources/KeycloakDS</property>
                        <property name="initialize_sql">
                            CREATE TABLE IF NOT EXISTS jgroupsping (
                                own_addr VARCHAR(200) NOT NULL,
                                cluster_name VARCHAR(200) NOT NULL,
                                ping_data BYTEA DEFAULT NULL,
                                PRIMARY KEY (own_addr, cluster_name)
                            )
                    </property>
                    </protocol>
                    <protocol type="MERGE3"/>
                    <protocol type="FD_SOCK"/>
                    <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="MFC"/>
                    <protocol type="FRAG3"/>
                </stack>
            </stacks>

Source: https://github.com/devopsutils/keycloak-cluster-aws-rds/blob/master/ecr/resources/standalone-ha.xml

I'm trying to learn the concept. We're trying to deploy Keycloak cluster in AWS ECS.

I don't know why UDP stack is mentioned in the config file, since AWS doesn't support UDP.

The part with TCP makes sense where we added JDBC_PING as a protocol. I don't see why UDP is mentioned? How does the <stacks> in config file work?

MrRobot9
  • 123
  • 3

0 Answers0