0

我们在负载均衡器后面的 EC2 实例之间使用简单的 Akka Remote 调用。每个实例类型(A 和 B)都位于负载均衡器之后,并且可以分别拥有多个实例。我们使用tell发送请求并使用 getSender() 知道在需要时回复谁。

我尝试设置remote.netty.tcp.hostname以下配置,并列出它们的结果:

  1. 主机名:ServerA-负载均衡器-dns:

    • 来自 ServerA 的请求 --> ServerB-load-balancer:ServerB 响应ServerA-loadbalancer-dns允许将响应路由到不同的实例,即未发出请求的实例。导致超时。
    • 所以请求有效,但响应失败
  2. 主机名:服务器A-实例-dns:

    • 来自 ServerA 的请求 --> ServerB-load-balancer:ServerB 响应ServerA-instance-dns有效,因为它确切地知道要响应谁。
    • 来自服务器B的请求--> 服务器A -load-balancer: 失败,因为主机名设置为 ServerA- instance -dns 与请求中使用的负载均衡器不匹配。错误信息:

    akka.remote.EndpointWriter - 为非本地收件人 [Akka.tcp://application@ServerA-loadbalancer-dns:8000/] 丢弃消息 [class akka.actor.ActorSelectionMessage] /application@ServerA-loadbalancer-dns:8000] 入站地址是 [akka.tcp://application@ServerA-instance-dns:8000]

因此,因为我不能为传入的远程调用允许两个可接受的主机名,所以在当前设置下,我总是会遇到失败的情况。有没有办法配置这个?

4

0 回答 0