Chapter 2

Node Coordination

当您想要协调网络上的一组节点时,PAIR套接字将不能很好地工作。这是线程和节点策略不同的少数领域之一。基本上,节点来来去去,而线程通常是静态的。如果远程节点离开并返回,PAIR套接字不会自动重新连接。

线程和节点之间的第二个显著区别是,线程的数量通常是固定的,但节点的数量却是可变的。

我们不能假设在REQ/REP对话框完成时SUB连接已经完成。如果您正在使用除inproc之外的任何传输,则不能保证出站连接将以任何顺序完成。

一个更可靠的模型可以是:

Publisher打开PUB套接字并开始发送“Hello”消息(不是数据)。 

订阅者连接SUB套接字,当他们收到Hello消息时,他们通过REQ/REP套接字对告诉发布者。 

当发行商得到所有必要的确认后,它就开始发送真实的数据。

Pub-Sub Message Envelopes

在pub-sub模式中,我们可以将密钥分解为一个单独的消息帧,我们称之为信封。如果你想用pub-sub信封,自己做,这是可选的。对于简单的情况,使用pub-sub信封要多做一些工作,但它更简洁,特别是对于真实的情况,因为密钥和数据是自然分离的东西。

订阅执行前缀匹配。也就是说,它们查找“所有以XYZ开头的消息”。显而易见的问题是:如何将键与数据分隔开来,以便前缀匹配不会意外地匹配数据。最好的答案是使用信封,因为匹配不会跨越框架边界。

原文地址:https://www.cnblogs.com/usen521/p/15336568.html