サイズ4[MB]のメッセージを数秒ごとに送信python
するモードで使用しようとしてzeroMQ
います。PUSH / PULL
何らかの理由で、すべてのメッセージが送信されたように見えますが、サーバーによって受信されたのは一部のメッセージのみであるように見えます。ここで何が欠けていますか?
これがクライアントのコードです-client.py
import zmq
import struct
# define a string of size 4[MB]
msgToSend = struct.pack('i', 45) * 1000 * 1000
context = zmq.Context()
socket = context.socket(zmq.PUSH)
socket.connect("tcp://127.0.0.1:5000")
# print the message size in bytes
print len(msgToSend)
socket.send(msgToSend)
print "Sent message"
そしてここにサーバーのコードがあります-server.py
import zmq
import struct
context = zmq.Context()
socket = context.socket(zmq.PULL)
socket.bind("tcp://127.0.0.1:5000")
while True:
# receive the message
msg = socket.recv()
print "Message Size is: {0} [MB]".format( len(msg) / (1000 * 1000) )
私は何が欠けていますか?メッセージが常に送信され、失われないことを保証するにはどうすればよいですか?
重要な場合はUbuntu 10.04
、2[GB]RAMを搭載した32ビットのCoreDuoマシンを使用しています。
注:同じ例を使用して試しましたがRabbitMQ
、すべてが正常に機能します。メッセージが失われることはありません。の称賛をよく聞くので困惑しzeroMQ
ます。RabbitMQ
成功したところで失敗したのはなぜですか?