对于REP/REQ来说,Akka zeromq演员似乎很慢

use*_*712 5 scala request zeromq reply akka

我正在使用zeromq构建REQ/REP服务,REP部分在Scala中并使用Akka actor.

这是演员

class ReplyActor extends Actor {

  println("Listening..")

  def receive = {
    case m: ZMQMessage =>
      sender ! ZMQMessage(Seq(Frame("world")))
    case _ =>
      sender ! ZMQMessage(Seq(Frame("didn't understand?")))
  }

}
Run Code Online (Sandbox Code Playgroud)

而我的主要功能

object Replyer extends App {
  val system = ActorSystem("zmq")
  val serverSocket = ZeroMQExtension(system).newRepSocket(
    Array(
      Bind("tcp://127.0.0.1:1234"),
      Listener(system.actorOf(Props[ReplyActor]))
    )
  )
}
Run Code Online (Sandbox Code Playgroud)

我的REQ代码是在python中

import zmq
import time
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://127.0.0.1:1234")

startTime = time.time() 
for i in range(10):
    msg = "msg %s" % i
    socket.send("hello")
    msg_in = socket.recv()

print 'That took ', time.time()-startTime, 'seconds'
Run Code Online (Sandbox Code Playgroud)

对于10条消息大约需要1秒钟,所以我的问题是它为什么这么慢?如果我在python中构建REP它真的很快,所以我指责Akka zeromq绑定.

额外信息:我正在使用Scala 2.9.2和最新的Akka 2.0.3(但也尝试使用2.0.2)