当前位置: 首页 > 知识库问答 >
问题:

Akka集群”连接拒绝”混淆

轩辕海
2023-03-14

我一直在通过Akka示例集群应用程序教程和本文档研究Akka集群。我让它在本地运行(127.0.0.1),但我似乎无法使用我的静态IP(192.168.0.99)让它工作。我这样做是为了快速检查是否正常,因为我在尝试使用我的Raspberry Pi作为节点时收到了类似的消息。

[警告][05/30/2016 11:01:41.432][ClusterSystem akka.remote.default-remote-dispatcher-8][akka。tcp://ClusterSystem@127.0.0.1:63599/system/endpointManager/reliableEndpointWriter-akka。tcp://ClusterSystem@192.168.0.99:2552-1]与远程系统的关联[akka。tcp://ClusterSystem@192.168.0.99:2552]已失败,地址现在为[5000]毫秒选通。原因:[与[akka]的关联失败。tcp://ClusterSystem@192.168.0.99:2552]]原因:[连接被拒绝:无进一步信息:/192.168.0.99:2552]

我相信我收到了一个连接被拒绝的错误,因为在端口2552上没有任何监听,但我不知道为什么。Akka程序是如何安装到节点上并开始运行的?为什么它与127.0兼容。0.1而不是我的静态IP?

据我所知,本教程或文档中没有明确指出:“您需要为节点编译单独的程序。”那么程序是从主Akka服务器推送到节点上,还是我需要为我的节点创建另一个项目?

我猜是前者,但是人们如何/为什么在与服务器相同的项目中进行节点开发呢?它们作为服务器和节点运行同一个jar的方式有何不同?

编辑:

Address of Raspberry Pi Node 1: 192.168.0.8
Address of Raspberry Pi Node 2: 192.168.0.9
Address of Desktop Computer: 192.168.0.99

应用桌面计算机上的配置(注意主机名)

#//#snippet
akka {

    log-dead-letters = off
    log-level = "debug"

  actor {
    provider = "akka.cluster.ClusterActorRefProvider"
  }
  remote {
    log-remote-lifecycle-events = off
    netty.tcp {
      hostname = "192.168.0.99"
      port = 2552
    }
  }

  cluster {
    seed-nodes = [
      "akka.tcp://ClusterSystem@192.168.0.8:2552",
      "akka.tcp://ClusterSystem@192.168.0.9:2552"]

    #//#snippet
    # excluded from snippet
    auto-down-unreachable-after = 10s
    #//#snippet
    # auto downing is NOT safe for production deployments.
    # you may want to use it during development, read more about it in the docs.
    #
    # auto-down-unreachable-after = 10s
  }
}

# Disable legacy metrics in akka-cluster.
akka.cluster.metrics.enabled=off

# Enable metrics extension in akka-cluster-metrics.
akka.extensions=["akka.cluster.metrics.ClusterMetricsExtension"]

# Sigar native library extract location during tests.
# Note: use per-jvm-instance folder when running multiple jvm on one host.
akka.cluster.metrics.native-library-extract-folder=${user.dir}/target/native
#//#snippet

应用Raspberry Pi节点2上的conf(节点1上类似,只是主机名不同)

#//#snippet
akka {

    log-dead-letters = off
    log-level = "debug"

  actor {
    provider = "akka.cluster.ClusterActorRefProvider"
  }
  remote {
    log-remote-lifecycle-events = off
    netty.tcp {
      hostname = "192.168.0.9"
      port = 2552
    }
  }

  cluster {
    seed-nodes = [
      "akka.tcp://ClusterSystem@192.168.0.8:2552",
      "akka.tcp://ClusterSystem@192.168.0.9:2552"]

    #//#snippet
    # excluded from snippet
    auto-down-unreachable-after = 10s
    #//#snippet
    # auto downing is NOT safe for production deployments.
    # you may want to use it during development, read more about it in the docs.
    #
    # auto-down-unreachable-after = 10s
  }
}

# Disable legacy metrics in akka-cluster.
akka.cluster.metrics.enabled=off

# Enable metrics extension in akka-cluster-metrics.
akka.extensions=["akka.cluster.metrics.ClusterMetricsExtension"]

# Sigar native library extract location during tests.
# Note: use per-jvm-instance folder when running multiple jvm on one host.
akka.cluster.metrics.native-library-extract-folder=${user.dir}/target/native
#//#snippet

有了这个,当我试图调出它时,我会在节点上得到“没有路由到主机”。

编辑2:

因为main是简单的。样品簇易于理解的SimpleClusterApp我必须用“java-cp cluster.jar simple.sample.cluster.simple.SimpleClusterApp”启动我的节点。这看起来对吗?我假设这是我正在为节点和桌面编译/组装的同一个教程项目?或者我需要为我的节点创建一个完全不同的项目吗??我很困惑。这个教程对新手来说太糟糕了。

共有1个答案

东方震博
2023-03-14

你好。

在这一部分的Akka教程假设你知道如何向上2个节点。

为此,您需要使用启动第二个actorSystem。形态,在哪里

 netty.tcp {
      hostname = "192.168.0.99"
      port = 2552
    }

并在第一个节点的种子写地址。

 类似资料:
  • 我想在伪分布式模式下设置一个hadoop-cluster。我设法执行了所有的设置步骤,包括在我的机器上启动一个Namenode、Datanode、Jobtracker和一个Tasktracker。 运行会得到如下输出(我用替换了其中的一部分): 启动和将导致以下输出: 在此之后不久调用将得到: 我还注意到不工作:

  • 下面是我的核心站点。xml: 下面是hdfs-site.xml 下面是mapreduce.xml 谢了。

  • 我有一个泊坞群设置,其中包含在覆盖网络中注册的服务。服务之间的通信工作正常,但是我从连接到外部数据库的一个服务中得到了“连接被拒绝”。该服务是基于 Java 的应用程序(Spring启动)。 < li >连接是用其IP(JDBC:MySQL://192 . 168 . 130 . 141:3306/database?auto connect = true) < li >我已经检查过我可以从容器pi

  • 我使用的是Postgres 9.1.5。JDBC在第一个实例中运行良好,但当我再次尝试时,它开始拒绝连接。例如,我使用JDBC登录到我的web应用程序,效果很好。但是,我尝试使用连接获取其他数据,它引发了一个异常:连接被拒绝。我确信我的代码没有问题,因为上次运行良好的登录JDBC也引发了一个异常:连接被拒绝。 重新启动postgres windows服务后,它再次工作。然后,登录JDBC,获取一些

  • 我试图实现一个TCP连接,在服务器端一切正常,但当我运行客户端程序(从客户端计算机)时,我得到以下错误: 服务器代码: 客户端代码: