2016-09-30 19 views
0

Привет Я пытаюсь разработать кластерное приложение, которое использует Infinispan для кэширования. Сначала я попытался запустить в реплицированном режиме, запустив два экземпляра wildfly, используя localhost в качестве интерфейса привязки (с смещениями портов). Это отлично работает. Но как только я запускаю сервер с использованием интерфейса IP, кластер не формируется. Тем не менее я могу получить доступ к другим службам с использованием интерфейса IP. Я попытался выполнить telnet через порт Jgroups, используя IP-адрес интерфейса, и это не удалось. Но telnetting to localhost работает для порта Jgorups.WildFly 10 Jgroups allways привязка к локальному интерфейсу

(Вошел localhsot [порт] для исходного элемента конфигурации хоста IP-адресов в tcpping. Затем кластер образование работало.)

Так что мой вопрос почему он связывается с локальным даже после запуска wildfly с помощью IP-интерфейса.

Вот моя конфигурация. (Я не могу использовать UDP, поэтому необходимо использовать tcpping для формирования кластера)

Начато wilfly сервер с использованием конфигурации

standalone.bat -Djboss.server.base.dir=../standalone_isuru -c standalone-full-ha.xml -b 192.168.17.33 -Djboss.node.name=isuru -Djboss.socket.binding.port-offset=1 

Jgourps

<subsystem xmlns="urn:jboss:domain:jgroups:4.0"> 
<channels default="ee"> 
    <channel name="ee" stack="tcpping"/> 
</channels> 
<stacks> 
    <stack name="udp"> 
     . 
     . 
    </stack> 
    <stack name="tcp"> 
     . 
     . 
    </stack> 
    <stack name="tcpping"> 
     <transport type="TCP" socket-binding="jgroups-tcp"/> 
     <protocol type="TCPPING"> 
      <property name="initial_hosts"> 
       192.168.17.33[7601], 192.168.14.39[7700], 192.168.17.33[7800] 
      </property> 
      <property name="num_initial_members"> 
       2 
      </property> 
      <property name="port_range"> 
       5 
      </property> 
      <property name="timeout"> 
       1000 
      </property> 
     </protocol> 
     <protocol type="MERGE3"/> 
     <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/> 
     <protocol type="FD"/> 
     <protocol type="VERIFY_SUSPECT"/> 
     <protocol type="pbcast.NAKACK2"/> 
     <protocol type="UNICAST3"/> 
     <protocol type="pbcast.STABLE"/> 
     <protocol type="pbcast.GMS"/> 
     <protocol type="MFC"/> 
     <protocol type="FRAG2"/> 
    </stack> 
</stacks> 

Infinispan кэша конфигурации

<cache-container name="replicated_cache" default-cache="default" module="org.wildfly.clustering.server" jndi-name="infinispan/replicated_cache"> 
    <transport lock-timeout="60000"/> 
    <replicated-cache name="customer" jndi-name="infinispan/replicated_cache/customer" mode="SYNC"> 
     <transaction locking="OPTIMISTIC" mode="FULL_XA"/> 
     <eviction strategy="NONE"/> 
    </replicated-cache> 
</cache-container> 

ответ

3

Я отправил тот же вопрос в Jboss developer, так как я не получил никакого ответа здесь. И это ответ, который я получил оттуда.

По умолчанию Jgroups привязываются к частному интерфейсу. При запуске сервера этот IP-адрес также может быть предоставлен.

standalone.bat -b 192.168.17.39 -bprivate=192.168.17.39 

Для конфигурации интерфейса вы можете обратиться к разделу interfaces.

<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:127.0.0.1}"/> 
    </interface> 
    <interface name="private"> 
     <inet-address value="${jboss.bind.address.private:127.0.0.1}"/> 
    </interface> 
    <interface name="unsecure"> 
     <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> 
    </interface> 
</interfaces> 

гнездо привязок, связывает JGroups с частным интерфейсом

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> 
    . 
    <socket-binding name="jgroups-tcp" interface="private" port="7600"/> 
    . 
</socket-binding-group> 

JGroups подсистемы

<stack name="tcpping"> 
    <transport type="TCP" socket-binding="jgroups-tcp"/> 
    . 
</stack>