zeromq的发送队列长度的参数设置
zeromq里面关这个对垒长度限制叫做 “High Water Marks”,2.0版本默认是没有限制的,3.0里面这个长度默认为1000。这个比较容易达到啊,根据包大小和消耗的内存大概修改一下才行。 zeromq的api也提供了修改系统的tcp缓存大小的接口了。 详细的socket选项,参考 http://api.zeromq.org/3-2:zmq-setsockopt ...
zeromq里面关这个对垒长度限制叫做 “High Water Marks”,2.0版本默认是没有限制的,3.0里面这个长度默认为1000。这个比较容易达到啊,根据包大小和消耗的内存大概修改一下才行。 zeromq的api也提供了修改系统的tcp缓存大小的接口了。
详细的socket选项,参考 http://api.zeromq.org/3-2:zmq-setsockopt
ZMQ_SNDHWM: Set high water mark for outbound messages
ZMQ_RCVHWM: Set high water mark for inbound messages
设置发送队列的长度
socket = new zmq::socket_t (*context, ZMQ_PUSH);
int queue_length = 5000;
socket->setsockopt(ZMQ_SNDHWM, &queue_length,sizeof(queue_length));
socket->connect ("tcp://127.0.0.1:5555");
其他有意思的选项:
ZMQ_AFFINITY: Set I/O thread affinity IO线程的亲和性
ZMQ_SNDBUF: Set kernel transmit buffer size 设置内核的发送缓冲长度。
ZMQ_RCVBUF: Set kernel receive buffer size 设置内核的接受缓冲长度。
应该就是系统的那个tcp缓存大小
ZMQ_RECONNECT_IVL: Set reconnection interval 重连间隔
ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval
ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections tcp相关的设置
更多推荐



所有评论(0)