Wildfly / Jboss-v10无法在群集模式下使用docker swarm

时间:2017-05-31 10:32:59

标签: docker jboss wildfly docker-swarm docker-swarm-mode

我的基于Web的java应用程序在wildfly/jboss version 10中运行。我正在使用docker(1.13.1-cs2)来部署我的应用程序。现在我想要一些HA(High availability)场景应用程序以集群模式工作。所以我将我的wildfly配置更改为我的standalone-full-ha.xml内的集群模式。在此更改之后,只有当我使用默认的docker网络并使用docker bridge network启动容器时,一切工作都很完美。但是根据我的要求,我想要整个容器/我的应用程序作为docker swarm的服务工作。但是如果我开始把它作为服务而不是wildfly / jboss无法以集群模式启动并抛出错误像这样:

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进行端口公开和通信。

根据我的问题排查,此问题与创建问题的wildfly/jboss version 10使用的多播地址有关。 我还尝试了这些步骤multicast address in docker

但是我的情况仍然无济于事。任何人都可以帮助我吗?非常感谢!

谢谢!

1 个答案:

答案 0 :(得分:0)

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

您可以回退到群集的基于TCP的单播。但是,这使得了解服务中所有其他容器的IP地址成为一项挑战。

另一种方法是创建一个支持单播的基于<div id="nav"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About Us</a></li> <li><a href="#">Our Portfolio</a></li> <li><a href="#">One Dropdown</a> <ul> <li><a href="#">Level 2.1</a></li> <li><a href="#">Level 2.2</a></li> <li><a href="#">Level 2.3</a></li> <li><a href="#">Level 2.4</a></li> <li><a href="#">Level 2.5</a></li> </ul> </li> <li><a href="#">Three Levels</a> <ul> <li><a href="#">Level 2.1</a></li> <li><a href="#">Level 2.2</a></li> <li><a href="#">Level 2.3</a> <ul> <li><a href="#">Level 2.3.1</a></li> <li><a href="#">Level 2.3.2</a></li> <li><a href="#">Level 2.3.3</a></li> <li><a href="#">Level 2.3.4</a></li> <li><a href="#">Level 2.3.5</a></li> <li><a href="#">Level 2.3.6</a></li> <li><a href="#">Level 2.3.7</a></li> </ul> </li> <li><a href="#">Level 2.4</a></li> <li><a href="#">Level 2.5</a></li> </ul> </li> <li><a href="#">Services</a></li> <li><a href="#">Contact Us</a></li> </ul> </div>的网络。教程:http://collabnix.com/docker-17-06-swarm-mode-now-with-macvlan-support/ 有了这个变体,我遇到的问题是,只要将这样的网络连接到容器入口(路由网)并通过docker_gwbridge访问ouside世界就会停止工作(详情:Docker Swarm container with MACVLAN network gets wrong gateway - no internet access