Heroku Akka-创建远程参与者

Heroku Akka-创建远程参与者,heroku,akka,actor,akka-remote-actor,Heroku,Akka,Actor,Akka Remote Actor,我试图在远程主机上创建Akka演员。 在官方文档之后,我创建了一个远程Actor系统来解析application.config文件,然后创建了一个新的Actor。 这是我的代码: public static void main(String[] args) { Config config = ConfigFactory.parseFile(new File("application.conf")); ActorSystem system = ActorSystem.create

我试图在远程主机上创建Akka演员。 在官方文档之后,我创建了一个远程Actor系统来解析application.config文件,然后创建了一个新的Actor。 这是我的代码:

public static void main(String[] args) {

    Config config = ConfigFactory.parseFile(new File("application.conf"));
    ActorSystem system = ActorSystem.create("system",config);
    ActorRef actor = system.actorOf(Props.create(SampleActor.class), "sampleActor");
    System.out.println(actor.path());
    actor.tell("Hello", ActorRef.noSender());
}
下面是我如何设置application.conf文件的:

阿克卡{演员{ provider=remote}remote{ 已启用的传输=[“akka.remote.netty.tcp”] netty.tcp{ hostname=“Shield-Atol-29637.herokuapp.com” 端口=2552 }}}

进一步详情:

  • Akka协议默认由Akka提供
  • Shield-Atol-29637.herokuapp.com是我的服务器的默认域 在heroku主持
问题是:我应该换一台服务器还是heroku就足够了?如果Heroku没有问题,我是否应该编写一个服务器应用程序,在端口2552上侦听传入的actor创建请求?因为文档中根本没有提到任何东西

提前感谢,,
Giacomo

考虑到我需要一个IP或域名,并且防火墙上的端口应该是开放的,我认为Akka不是在移动设备上创建分布式系统的最佳解决方案。例如,在一家网络中有服务器、具有静态IP和可配置防火墙的公司,这很好。

考虑到我需要IP或域名,并且防火墙上的端口应该是开放的,我认为Akka不是在移动设备上创建分布式系统的最佳解决方案。例如,在一家网络中有服务器、具有静态IP和可配置防火墙的公司,这是很好的选择。

当您可以在远程
ActorSystem
上启动Actor时,您必须已经部署了
ActorSystem
,并具有您想要触发的所有代码。这通常由属于同一集群的不同节点使用。你的情况似乎有点不同

我认为以这种方式在Heroku上部署Akka是行不通的:如果我没记错的话,Heroku是高度以HTTP为中心的,所以我怀疑它能否正确地确保在连接到端口2552时启动基于Akka的应用程序

在Heroku上部署服务器代码可能更有意义,触发器是通过HTTP实现的。这样,您就可以更好地处理Heroku的设计工作,并且实现仍然可以是基于Akka的(使用Akka http)或完全不同的东西


考虑HeloCu会希望你将长时间运行的进程卸载到工作节点,所以这确实取决于你想做什么,这是一个好的解决方案。

< P>你可以在远程<代码> ActoStase</代码>上启动角色,您必须已经部署了
ActorSystem
,其中包含您希望能够触发的所有代码。这通常由属于同一集群的不同节点使用。你的情况似乎有点不同

我认为以这种方式在Heroku上部署Akka是行不通的:如果我没记错的话,Heroku是高度以HTTP为中心的,所以我怀疑它能否正确地确保在连接到端口2552时启动基于Akka的应用程序

在Heroku上部署服务器代码可能更有意义,触发器是通过HTTP实现的。这样,您就可以更好地处理Heroku的设计工作,并且实现仍然可以是基于Akka的(使用Akka http)或完全不同的东西


考虑HeloCu会希望你将长时间运行的进程卸载到工作节点,所以这确实取决于你想做什么,这是否是一个好的解决方案。

< P>你可以使用HeloCu私有空间来配置和部署一个你想要远程使用的角色的DyNo。由于您不知道另一个Dyno的IP地址,因此您应该使用它来处理主机名。服务器Dyno应使用该主机名进行绑定,客户端Dyno应使用该主机名进行连接。

您可以使用Heroku Private Spaces与要远程使用的参与者一起配置和部署Dyno。由于您不知道另一个Dyno的IP地址,因此您应该使用它来处理主机名。服务器Dyno应使用该主机名进行绑定,客户端Dyno应使用该主机名进行连接。

我改变了主意,转而使用另一种在移动设备上传递消息的解决方案:PubNub library。我改变了主意,转而使用另一种在移动设备上传递消息的解决方案:PubNub library。