5

私はzeromqでREQ/REPサービスを構築しており、REP部分はScalaにあり、Akkaアクターを使用しています。

これが俳優です

class ReplyActor extends Actor {

  println("Listening..")

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

}

そして私の主な機能

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]))
    )
  )
}

私の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'

10通のメッセージで約1秒かかるので、なぜこんなに遅いのかという質問です。私がPythonでREPを構築する場合、それは本当に速いので、私はAkkazeromqバインディングを非難しています。

追加情報:私はScala2.9.2と最新のAkka2.0.3を使用しています(ただし、2.0.2でも試してみました)

4

0 に答える 0