Acest fișier conține configurația obișnuită a serverului Keycloak cu adăugarea extensiilor WildFly10 High Availability, cum ar fi cache-ul Infinispan HA și canalele de comunicare JGroups HA și setările de configurare ale acestora.
<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>
Sursă: https://github.com/devopsutils/keycloak-cluster-aws-rds/blob/master/ecr/resources/standalone-ha.xml
Încerc să învăț conceptul. Încercăm să implementăm clusterul Keycloak în AWS ECS.
Nu știu de ce stiva UDP este menționată în fișierul de configurare, deoarece AWS nu acceptă UDP.
Partea cu TCP are sens acolo unde am adăugat JDBC_PING
ca protocol. Nu văd de ce este menționat UDP? Cum face <stacks>
în fișierul de configurare funcționează?