zeroMQ初体验-12.安全与稳定

可能绝大多数接触zeromq的人都会对其去中心的自由感到满意,同时却又对数据传输的可靠性产生怀疑甚至沮丧(如果恰巧你也知道"兔子"的话)。

在这里,或许可以为此作出一些弥补,增强诸位使用它的信心。

zeromq之所以传输的速度无以伦比,它的"zero copy"功不可没,在这种机制下,减少了数据的二次缓存和挪动,并且减少了通讯间的应答式回应。不过在快速的同时,也降低了数据传递的可靠性。而打开copy机制,则在牺牲一定速度的代价下提升了其稳定性。

除了zero-copy机制外,zeromq还提供了一种命名机制,用以建立所谓的"Durable Sockets"。从之前的章节中已知,数据传输层面的事情已经由zeromq接管,那么在 “Durable Sockets”下,即使你的程序崩溃,或者因为其他原因导致节点丢失(挂掉?)zeromq会适当的为节点存储数据,以便当节点重新连上时,可以获取之前的数据

未启用命名机制时:


启用后:


相关设置:
zmq_setsockopt (socket, ZMQ_IDENTITY, "Lucy", 4);


注意:
1.如果要启用命名机制,必须在连接前设定名字。
2.不要重名!
3.在连接建立后不要再修改名字。
4.最好不要随机命名。
5.如果需要获知消息来源的名字,需要在消息发送时附加上(xrep会自动获取)名字。

(未完待续)

你可能感兴趣的:(C++,c,socket,C#)