【问题标题】:Akka Cluster with bind-port and bind-hostname具有绑定端口和绑定主机名的 Akka 集群
【发布时间】:2015-09-28 08:55:27
【问题描述】:

在Akka FAQ 指定的application.conf 中配置bind-hostname 和bind-port 并启动集群后,我收到一个错误:

[ERROR] [07/09/2015 19:54:24.132] [default-akka.remote.default-remote-dispatcher-20] 
[akka.tcp://default@54.175.105.30:2552/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fdefault%4054.175.105.30%3A2552-757/endpointWriter]
dropping message [class akka.actor.ActorSelectionMessage] 
for non-local recipient[Actor[akka.tcp://default@54.175.105.30:32810/]] 
arriving at [akka.tcp://default@54.175.105.30:32810] 
inbound addresses are [akka.tcp://default@54.175.105.30:2552]

这似乎是说,参与者收到了一条发往端口 32810(外部端口)的消息,但由于内部端口 (2552) 不匹配而将其丢弃。

文件的相关部分是:

  hostname = 54.175.105.30
  port = 32810

  bind-hostname = 172.17.0.44
  bind-port = 2552

我在 2.4-M1、2.4-M2 和 2.4-SNAPSHOT 上试过这个,效果都一样。

有没有其他人遇到过这种情况?有什么建议吗?

编辑: 这个演员系统在 docker 容器的 ECS 中运行。 docker 容器配置设置为在容器的私有 IP 上从临时范围转发到 2552。 ECS 已成功将 hostname:port 映射到 bind-hosname:bind-port。 Actor 成功运行并绑定到本地绑定主机名和绑定端口,但正在丢弃消息并发出上述错误。

【问题讨论】:

  • 只是好奇,您能够将bind-hostname 设置为网桥而不是0.0.0.0?通过将网络类型设置为host?

标签: docker akka akka-cluster amazon-ecs


【解决方案1】:

bind-* 配置设置用于 Akka 节点在 NAT 之后(或在 docker 容器中)启动的情况。您是否配置了从hostname:port 到bind-hostname:bind-port 的地址转换?

在您的特定配置中,当您这样做时

ctx.actorSelection("akka.tcp://default@54.175.105.30:32810/user/actor") ! “你好”

那么54.175.105.30 的某个人应该正在侦听 TCP 端口 32810 并将端口转发到 172.17.0.44:2552。演员系统应该使用您在172.17.0.44:2552 提供的配置运行。是这样吗?

您还必须为 NAT 后面的每个节点配置此项,因为 Actor 系统之间的连接是 peer to peer。

【讨论】:

  • 如果您查看错误消息,奇怪的是这个地址/端口组合:54.175.105.30:2552,它结合了hostname 和bind-port。怎么会这样?
  • 是的,在这种情况下,我们在 ECS 上使用 docker,并使用 AWS/ECS 内省动态配置 application.conf。 IP 地址和端口是正确的,docker 将端口从临时范围(在本例中为 32810)转发到容器端口(在本例中为 2552)。在 ECS 中启动的每个 docker 容器都会运行 introspection/application.conf 配置脚本来配置自身并填充其种子。
  • @jrudolph:这是我的问题。当它需要查看它的绑定主机名:绑定端口时,看起来参与者正在寻找来自其绑定主机名:端口的消息。
【解决方案2】:

这是由于我的配置错误造成的。剩余的一些样板代码覆盖了绑定端口。

【讨论】:

  • 您有机会分享您的方法吗?我正在尝试使用来自亚马逊 DNS 的开箱即用服务发现(请参阅博客文章),它将 SRV 记录映射到服务。
猜你喜欢
  • 1970-01-01
  • 2018-08-08
  • 2021-08-03
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 2020-05-06
  • 2022-01-17
  • 2022-01-19
相关资源
最近更新 更多