Описание тега nanomsg
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
- архетип позволяет запрашивать состояние нескольких приложений за один раз
НЕ РОЗЕТКА КАК РОЗЕТКА?
Чтобы лучше понять широту возможных вариантов установки и конфигурации, можно сначала заметить:
- Nanomsg отведенного-сокет доступ точка может быть либо "подключена" (с помощью вызова
nn_connect()
) к другой точке доступа, имеющейся и готовой к некоторому удаленному адресу инфраструктуры или "привязанной" (с использованиемnn_bind
), который создает такую точку доступа к сервису для первого. - В одном абстрактном экземпляре сокета nanomsg может быть несколько подключений и привязок.
- Существуют определенные параметрыконфигурации сокета nanomsg, которые могут быть установлены или изменены программистом.
ДОКУМЕНТАЦИЯ:
Хотя nanomsg многое заимствует из работы Мартина Сустрика над ZeroMQ, здесь есть принципиальные различия и другие специфичные для языка детали, задокументированные здесь.