Конфигурация Wildfly 15 для HA на EC2 с использованием AWS_PING - PullRequest
2 голосов
/ 04 июля 2019

Мне нужно запустить 2+ сервера Wildfly на EC2, поэтому я подумал, что AWS_PING может быть хорошим способом обнаружения пиров.

Я запускаю на EC2 образец чата JGroups на основе AWS_PING, как описано в https://github.com/meltmedia/jgroups-aws и работает нормально.

Поэтому я поместил следующую конфигурацию в standalone-ha.xml:

  <subsystem xmlns="urn:jboss:domain:jgroups:6.0">
        <channels default="ee">
            <channel name="ee" stack="tcp" cluster="ejb"/>
        </channels>
        <stacks>
            <stack name="tcp">
                <transport type="TCP" socket-binding="jgroups-tcp"/>
                <protocol type="com.meltmedia.jgroups.aws.AWS_PING" module="org.jgroups.aws:awsping">
                    <property name="tags">foobar</property>
                    <property name="port_number">7600</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>
    </subsystem>

, а socket-binding-group описывается как:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    ...
    <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
    ...
</socket-binding-group>

и я настроил модули Wildfly, используя tar-файл, сгенерированный с помощью https://github.com/soulwing/wildfly-jgroups-aws-ping

Когда я перезапускаю Wildfly, подсистема JGroups кажется правильно запущенной:

$ grep jgroups log/server.log
2019-07-04 08:52:56,732 INFO  [org.jboss.as.clustering.jgroups] (ServerService Thread Pool -- 57) WFLYCLJG0001: Activating JGroups subsystem. JGroups version 4.0.15

Однако Wildfly не слушаетна порту 7600:

$ sudo netstat -plnt | grep java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      13123/java          
tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      13123/java          
tcp        0      0 127.0.0.1:9990          0.0.0.0:*               LISTEN      13123/java          
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      13123/java

Я пропустил некоторые настройки?Почему Wildfly не слушает порт 7600?

...