Ответ 1
Существует несколько основных принципов, для которых необходимо связывать и которые нужно подключать. В общем, zeromq не волнует *, это просто до вас, что более удобно.
Для данной пары сокетов, которые будут разговаривать друг с другом, вот несколько вопросов, которые нужно задать, чтобы определить, к какой привязке нужно подключиться:
- Один из процессов живет дольше, чем другой (т.е. запускается, что-то делает, останавливается, а другой сидит и работает долгое время)? Если это так, то более продолжительный должен быть привязан.
- Есть ли у вас несколько экземпляров одной или другой стороны? Если это так, то, который не является множественным (или тот, который имеет меньше экземпляров), должен связываться, потому что это меньше URL-адресов для отслеживания.
В основном это упрощает управление URL-адресами и соединениями. В примере с вентилятором/приемником имеется ровно один вентилятор и один приемник, но может быть любое количество рабочих (ноль-ко-многим). Если раковина и вентиляционное отверстие соединяются, то им не нужно знать о рабочих, когда они приходят и уходят. Есть только два URL-адреса, которые следует отслеживать, тогда как если бы работники привязались, вам приходилось отслеживать URL-адрес для каждого нового работника и сообщать приемнику и/или выпускать новый URL-адрес каждый раз, когда прибывает новый рабочий.
* это может иметь значение в некоторых случаях с краем, но не в целом.