Akka.Net Объединяйте в кластер разных Актеров на разных машинах в одной сети. Но акторные системы не могут найти друг друга

Я использую следующую установку. На двух разных компьютерах в одной сети я хотел бы использовать один серверный продукт на 1-м. pc, тогда как часть Gui работает на втором. ПК.

  1. ПК один и ПК два используют разные статические IP-адреса.

  2. Backend-продукт поддерживает одну ActorSystem (имя: ProductXY-ActorSystem)

  3. Продукт с графическим интерфейсом поддерживает вторую ActorSystem (имя: ProductXY-ActorSystem)

  4. Lighthouse работает на первом ПК, где работает серверная часть.

  5. Я использую публикацию/подписку через Cluster.Tools для связи.

пожалуйста, найдите ниже конфигурационные файлы, которые я использую:

1.) ПК один: (бэкэнд, маяк)

---- бэкенд.config

      akka {
  stdout-loglevel = INFO
  loglevel = INFO
  ACTOR_SYSTEM ="ProductXY-ActorSystem"

  actor {
      serialize-messages = on

      debug {
              receive = on      # log any received message
              autoreceive = on  # log automatically received messages, e.g. PoisonPill
              lifecycle = on    # log actor lifecycle changes
              event-stream = on # log subscription changes for Akka.NET event stream
              unhandled = on    # log unhandled messages sent to actors
      }

      provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"

      serializers {
          hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
          akka-pubsub = "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools"
      }

      serialization-bindings {
          "System.Object" = hyperion
          "Akka.Cluster.Tools.PublishSubscribe.IDistributedPubSubMessage, Akka.Cluster.Tools" = akka-pubsub
          "Akka.Cluster.Tools.PublishSubscribe.Internal.SendToOneSubscriber, Akka.Cluster.Tools" = akka-pubsub
      }

      serialization-identifiers {
          "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools" = 9
      }
  }

  remote {
      log-remote-lifecycle-events = off

      dot-netty.tcp {
          transport-class = "Akka.Remote.Transport.DotNetty.TcpTransport, Akka.Remote"
          applied-adapters = []
          transport-protocol = tcp

          port = 0
          hostname = "10.190.191.20" # <<-- IP to backend pc.
      }
  }

  cluster {
      roles = ["shared-cluster"]
      seed-nodes = ["akka.tcp://"${akka.ACTOR_SYSTEM}"@10.190.191.20:4053"]# <<-- IP to backend pc.
  }
}

-------- маяк.config

      lighthouse{
actorsystem: "ProductXY-ActorSystem"
}

akka {
actor {
  provider = cluster

  serializers {
      hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
      akka-pubsub = "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools"
  }

  serialization-bindings {
      "System.Object" = hyperion
      "Akka.Cluster.Tools.PublishSubscribe.IDistributedPubSubMessage, Akka.Cluster.Tools" = akka-pubsub
      "Akka.Cluster.Tools.PublishSubscribe.Internal.SendToOneSubscriber, Akka.Cluster.Tools" = akka-pubsub
  }

  serialization-identifiers {
      "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools" = 9
  }
}

remote {
  log-remote-lifecycle-events = DEBUG
  dot-netty.tcp {
    transport-class = "Akka.Remote.Transport.DotNetty.TcpTransport, Akka.Remote"
    applied-adapters = []
    transport-protocol = tcp
    #will be populated with a dynamic host-name at runtime if left uncommented
    public-hostname = "10.190.191.20" # <<-- IP to backend pc.
    port = 4053
  }
}            

cluster {
  #will inject this node as a self-seed node at run-time
  seed-nodes = [] 
  roles = [lighthouse]
}
}

и на пк2:

      -------- Gui.config
  akka {
    stdout-loglevel = INFO
    loglevel = INFO
    ACTOR_SYSTEM ="ProductXY-ActorSystem"

    actor {
        serialize-messages = on

        debug {
                receive = on      # log any received message
                autoreceive = on  # log automatically received messages, e.g. PoisonPill
                lifecycle = on    # log actor lifecycle changes
                event-stream = on # log subscription changes for Akka.NET event stream
                unhandled = on    # log unhandled messages sent to actors
        }

        provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"

        serializers {
            hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
            akka-pubsub = "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools"
        }

        serialization-bindings {
            "System.Object" = hyperion
            "Akka.Cluster.Tools.PublishSubscribe.IDistributedPubSubMessage, Akka.Cluster.Tools" = akka-pubsub
            "Akka.Cluster.Tools.PublishSubscribe.Internal.SendToOneSubscriber, Akka.Cluster.Tools" = akka-pubsub
        }

        serialization-identifiers {
            "Akka.Cluster.Tools.PublishSubscribe.Serialization.DistributedPubSubMessageSerializer, Akka.Cluster.Tools" = 9
        }
    }

    remote {
        log-remote-lifecycle-events = off

        dot-netty.tcp {
            transport-class = "Akka.Remote.Transport.DotNetty.TcpTransport, Akka.Remote"
            applied-adapters = []
            transport-protocol = tcp

            port = 0
            hostname = "10.168.4.30" # <<-- IP to gui pc.
        }
    }

    cluster {
        roles = ["shared-cluster"]
        seed-nodes = ["akka.tcp://"${akka.ACTOR_SYSTEM}"@10.190.191.20:4053"] # <<-- IP to backend pc.
    }
}

Резюме: на серверном ПК: маяк и серверный продукт работают вместе очень хорошо. Но гуи-продукт на пк 2 не может подключиться к маяку на пк 1. На пк1 1 может пинговать пк2 и наоборот.

Дополнительный тест: маяк, бэкенд и Gui-продукт работают без проблем на одной машине. Ip установлен на 127.0.0.1.

Q: Что не так с моими конфигурационными файлами hocon?

Крис

0 ответов

Другие вопросы по тегам