Описание тега nanomsg

NoneNanomsg - это библиотека сокетов, которая предоставляет несколько общих шаблонов связи. Его цель - сделать сетевой уровень быстрым, масштабируемым и простым в использовании.

nanomsg был инициирован усилиями Мартина Сустрика, создателя ZeroMQ, nanomsg, и получил дальнейшее развитие по сравнению с версией 1.1.2+, выпущенной в 2017/Q4.

import nnpy
# ----------------------------------------# DEF SOCKET ARCHETYPE ACCESS-POINTS:
p1 = nnpy.Socket( nnpy.AF_SP, nnpy.PAIR )
p2 = nnpy.Socket( nnpy.AF_SP, nnpy.PAIR )

# ----------------------------------------# SET TRANSPORT CLASS(-es) TO BE USED:
p1.bind(    'inproc://pairExcellence' )   # p1.bind(    'ipc:///tmp/pair' )
p2.connect( 'inproc://pairExcellence' )   # p2.connect( 'ipc:///tmp/pair' )

# ----------------------------------------# USE THEM TO SEND MESSAGES:
p1.send( 'hello, p2' ); p1.send( 'I am p1' )

# ----------------------------------------# AND ENJOY THE AUTOMATED DETAILS:
print( "P2 RECV'd: {0:}".format( p2.recv() ) ); p2.send( 'nice to meet you' )
print( "P1 RECV'd: {0:}".format( p1.recv() ) )
print( "P2 RECV'd: {0:}".format( p2.recv() ) )

ВСТУПЛЕНИЕ:

В концепции по-прежнему используется словесный сокет для наименования канала связи, но это скорее хорошо абстрагированный сокет, чем сокет, совместимый с POSIX, который, возможно, использовался для этого - давайте рассмотрим эти абстрактные сокеты скорее как архетип поведения с заранее заданной проводкой, это было закодировано в их операциях:

  • а PAIR - простой архетип для индивидуального общения

  • а BUS - архетип для простого общения многие-ко-многим

  • а REQREP - архетип, позволяющий строить кластеры сервисов без сохранения состояния для обработки запросов пользователей

  • а PUBSUB - архетип, который рассылает сообщения большим группам заинтересованных подписчиков

  • а PIPELINE - архетип объединяет сообщения из нескольких источников и распределяет их нагрузку между многими адресатами

  • а SURVEY - архетип позволяет запрашивать состояние нескольких приложений за один раз


НЕ РОЗЕТКА КАК РОЗЕТКА?

Чтобы лучше понять широту возможных вариантов установки и конфигурации, можно сначала заметить:

  1. Nanomsg отведенного-сокет доступ точка может быть либо "подключена" (с помощью вызоваnn_connect()) к другой точке доступа, имеющейся и готовой к некоторому удаленному адресу инфраструктуры или "привязанной" (с использованием nn_bind), который создает такую ​​точку доступа к сервису для первого.
  2. В одном абстрактном экземпляре сокета nanomsg может быть несколько подключений и привязок.
  3. Существуют определенные параметрыконфигурации сокета nanomsg, которые могут быть установлены или изменены программистом.

ДОКУМЕНТАЦИЯ:

Хотя nanomsg многое заимствует из работы Мартина Сустрика над ZeroMQ, здесь есть принципиальные различия и другие специфичные для языка детали, задокументированные здесь.