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

使用Scala 2.11.1在akka 2.3.4中未找到协议的传输

尹超
2023-03-14

解析器+=“TypeSafe Repository”(位于“http://repo.typesafe.com/typesafe/releases/”)

解析器+=“Sonatype Releases”,网址为“http://oss.sonatype.org/content/repositories/releases”

libraryDependencies+=“com.typesafe.akka”%%“akka-actor”%“2.3.4”

akka {
  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }
  remote { 
        enabled-transports = ["akka.remote.netty.tcp"]

        netty.tcp.hostname = "10.126.13.61" 
        netty.tcp.port = 2552
        netty.tcp.message-frame-size = 20 MiB
        //netty.tcp {
      //    write-buffer-high-water-mark = 148000b
          //  send-buffer-size = 148000b
           // receive-buffer-size = 148000b
        //}
  }

  event-handlers = []
  loglevel=WARNING

}    


my-custom-dispatcher {
//    type = PinnedDispatcher
    executor = thread-pool-executor
    # 10 years should be enough
//    thread-pool-executor.keep-alive-time = 315360000s
    # note that disabling core timeout altogether doesn't work
    # until ticket 2856 is fixed
    thread-pool-executor.allow-core-timeout = off
  mailbox-type = "akka.dispatch.UnboundedDequeBasedMailbox"
}
  private var system: Option[ActorSystem] = None
  def getSystem(machinefile: String) = synchronized {
    system match {
      case None =>
        system = Some(ActorSystem("FooPar" + indexOf(hostName, machinefile),
          ConfigFactory.parseString(conf))); system
      case Some(sys) => system
    }
  }

也就是说,我不显式创建address对象。

共有1个答案

宋成天
2023-03-14

在创建akka.actor.address实例时,这看起来像是一个问题。要使远程处理工作,第一个参数必须是“akka.tcp”而不是“akka”:

val addr = Address("akka.tcp", "actorSystem", hostname, port)

那么当您想要获取对执行元的引用时:

val path = RootActorPath(addr) / "user" / "actorName"
val actorRef = context.actorSelection(path)

(注意,上下文也可能是系统)

 类似资料:
  • Git 可以通过两种主要的方式在版本库之间传输数据:“哑(dumb)”协议和“智能(smart)”协议。 本节将会带你快速浏览这两种协议的运作方式。 哑协议 如果你正在架设一个基于 HTTP 协议的只读版本库,一般而言这种情况下使用的就是哑协议。 这个协议之所以被称为“哑”协议,是因为在传输过程中,服务端不需要有针对 Git 特有的代码;抓取过程是一系列 HTTP 的 GET 请求,这种情况下,客

  • 我正在努力将Sustainsys.Saml2与Gluu服务器结合起来设置。我使用Sustainsys.Saml2.2.0、Sustainsys.Saml2.Mvc2.2.0和Gluu 3.1.6。我使用的应用程序是针对. NET 4.6.2编译的MVC应用程序。以下是发生的流量: 得到https://localhost:44300/Saml2/SignIn 得到https://lb/idp/pro

  • 我已经在我的CentOs中安装了协议2.5.0, 当我执行命令proc--version时,它会产生 LIBProc 2.5.0 作为输出。 但一旦我从git中提取代码,当我尝试使用Maven3编译它时,proto模块抛出错误,说, Prococ失败错误: /bin/sh: Prococ:命令未找到 我参考了许多博客,也尝试改变我的bashrc路径如下, 导出JAVA_HOME=/opt/java

  • 问题内容: 我正在将我的项目从Objective-c转换为Swift,并且正在使用一个Swift类,我正在尝试在Objective- c类中进行访问。我的问题是,在Objective-C类中不可访问。这是我的速成班: 当我查看文件时,看不到: 当我尝试在我的Objective-c类中使用时,出现编译器错误。 有人知道这个问题吗?如何在Objective-c中访问Swift协议? 问题答案: 您需要

  • Hprose 远程过程调用(RPC)通讯可以在任何底层网络协议上传输。例如 HTTP,TCP 或 UNIX socket。 HTTP 绑定 当 hprose 远程过程调用(RPC)工作于 HTTP 之上时,hprose 远程过程调用(RPC)的数据作为 POST 请求的 body 部分发送,以响应的 body 部分返回。 Hprose 远程过程调用(RPC) 对 HTTP 的头部(head)没有任

  • 我正在尝试从我的本地目录中获取视频文件,从服务器启用流并从我的客户端捕获这些帧。我使用了以下管道: 服务器端: 客户端: 设置这些后,我没有看到任何显示(甚至没有启动应用程序屏幕) 为了添加以上信息,我正在Ubuntu-12.04的命令行中运行这些命令