0

我有我的基于 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创建问题所使用的多播地址有关。我也在docker中尝试了这些步骤多播地址

但这对我来说仍然没有帮助。任何人都可以帮助我吗?非常感谢!

谢谢!

4

1 回答 1

0

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

您可以为您的集群回退到基于 TCP 的单播。但这留下了了解服务中所有其他容器的 IP 地址的挑战。

另一种方法是创建一个macvlan支持单播的基础网络。教程:http ://collabnix.com/docker-17-06-swarm-mode-now-with-macvlan-support/ 使用该变体时,我遇到的问题是,一旦将此类网络连接到容器入口(路由网格)并通过 docker_gwbridge 访问外部世界停止工作(详细信息:具有 MACVLAN 网络的 Docker Swarm 容器获取错误的网关 - 无法访问互联网

于 2017-10-01T10:37:21.323 回答