我的基于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
但是我的情况仍然无济于事。任何人都可以帮助我吗?非常感谢!
谢谢!
答案 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)