2017-05-31 108 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