【问题标题】:Apache Ignite Server to Client connection issuesApache Ignite 服务器到客户端的连接问题
【发布时间】:2018-10-05 04:37:56
【问题描述】:

我在 AWS EC2 实例上安装了 Apache Ignite 服务器。我正在使用 s3 存储桶进行客户端发现。我在 docker 容器中部署了多个微服务,它们正在与 Ignite 服务器通信。我遇到的问题是,当我的微服务将其作为客户端注册到 Ignite 服务器时,它工作得非常好。它正在向 docker 容器私有 IP 范围注册,Ignite 服务器无法访问该范围。现在,当 Ignite 服务器正在检查客户端心跳时,它无法访问。有人可以告诉我在基于容器的架构中使用 ignite 的最佳方法是什么。

输出:当服务器试图检查客户端状态时

 (wrn) <visor>: Failed to connect to node (is node still alive?). Make sure that each ComputeTask and cache Transaction has a timeout
 set in order to prevent parties from waiting forever in case of
 network issues [nodeId=8b04f5a6-6b1d-498b-98b2-1044b8c25f3a,
 addrs=[/172.17.0.4:47100, /127.0.0.1:47100]]

【问题讨论】:

  • 很难说问题的根本原因是什么。获得服务器和客户端节点的 Ignite 配置会很好。或许,您需要配置AddressResolver。请查看以下链接:-apacheignite.readme.io/docs/docker-deployment-apacheignite.readme.io/docs/aws-deployment-apache-ignite-users.70518.x6.nabble.com/…
  • 谢谢@sk0x50,但是这个文档没有太多关于服务器和客户端之间的工作流的信息,当它们部署在Docker环境中时。
  • 一般来说,您的节点必须在两个方向上都可见 - 从客户端(从您的 docker 容器)到服务器,反之亦然。
  • @sk0x50 在容器化环境中,可见性是最大的问题。 docker 容器使用自己的 IP 范围运行,该 IP 范围对服务器不可见或无法访问。这就是我停下来的地方。

标签: server client communication ignite


【解决方案1】:

您可以通过 ignite 配置中的系统环境变量将主机名转发到 ignite 容器:

<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
    <property name="addresses">
        <list>
            <value>#{systemEnvironment['IGNITE_HOST'] ?: '127.0.0.1'}:47500..47509</value>
        </list>
    </property>
</bean>

docker-compose.yml 用于 2 个通信的 ignite 服务的示例:

version: "3"
services:
  ignite:
    image: image_name1
    networks:
      - net
  face:
    image: image_name2
    depends_on:
      - ignite
    networks:
      - net
    environment:
      IGNITE_HOST: 'ignite'

'face'的ignite节点可以使用地址ignite:47500..47509连接到'ignite'的另一个ignite节点

【讨论】:

    【解决方案2】:

    1) 让 ignite 知道你的 EC2 ip 的地址

    TcpDiscoverySpi spi = //whatever
    spi.setLocalAddress( /* ip on ec2 subnet */ );
    

    2) 在“host”网络模式下运行 docker,而不是默认的“bridge”模式

    这两个步骤应该允许 Ignite 集群的成员之间进行双向 TCP 握手

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2021-10-04
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多