2017-05-31 110 views
0

我有我的基于Web的Java应用程序工作在wildfly/jboss version 10。我正在使用docker(1.13.1-cs2)部署我的应用程序。现在根据一些HA(High availability)场景I希望我的应用程序能够在群集模式下工作。因此,我在我的standalone-full-ha.xml内将我的野蛮配置更改为群集模式。更改完成后,只有使用默认码头网络并使用docker bridge network启动容器时,所有工作才会完美。但根据我的要求,我希望整个容器/我的应用程序作为docker swarm的服务工作。但是如果我开始将此服务作为服务比wildfly/jboss无法以集群模式启动并抛出如下错误:Wildfly/Jboss-v10无法在集群模式下与Docker群工作

21:01:27,885 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (38 bytes): java.io.IOException: Operation not permitted, headers: NAKACK2: [HIGHEST_SEQNO, seqno=2631], TP: [cluster_name=ee] 
21:01:28,826 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (4166 bytes): java.io.IOException: Operation not permitted, headers: FORK: ee:activemq-cluster, NAKACK2: [MSG, seqno=2632], TP: [cluster_name=ee] 
21:01:29,886 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (38 bytes): java.io.IOException: Operation not permitted, headers: NAKACK2: [HIGHEST_SEQNO, seqno=2632], TP: [cluster_name=ee] 
21:01:30,826 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (4166 bytes): java.io.IOException: Operation not permitted, headers: FORK: ee:activemq-cluster, NAKACK2: [MSG, seqno=2633], TP: [cluster_name=ee] 

注:我使用默认swarm ingress network端口暴露和沟通。

根据我的疑难解答,此问题与创建问题所使用的组播地址有关。 我也试过这些步骤multicast address in docker

但它仍然没有帮助在我的情况。任何人都可以在这帮助我吗?非常感谢!

谢谢!

回答

0

Docker Swarm的覆盖网络目前不支持IP多播。

您可以为您的群集回退到基于TCP的单播。但是这就让我们知道服务中所有其他容器的IP地址。

另一种方法是创建一个支持单播的基于macvlan的网络。教程:http://collabnix.com/docker-17-06-swarm-mode-now-with-macvlan-support/ 使用该变体时,我有问题,只要将此类网络连接到容器入口(路由网格)并通过docker_gwbridge访问外部世界就会停止工作(详细信息:Docker Swarm container with MACVLAN network gets wrong gateway - no internet access