[nanomsg] The name service for nanomsg

  • From: Paul Colomiets <paul@xxxxxxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Thu, 5 Sep 2013 18:57:03 +0300

Hi,

There were rough agreement on the IRC that pluggable name service
should be implemented for nanomsg. I'll describe few details. I swear
this message will be shorter than previous :)

1. The nanomsg socket should be used for name resolution. I propose to
pass the socket through the environment:

NN_NAME_SERVICE=tcp://127.0.0.1:1234 ./your_program

2. When there is a environment variable the "topology://name"
addresses are supported for nn_connect

3. The name request consists of the following parts:

<hostname> <app_name> <topology_id>

where <hostname> is a gethostname() of requester, <app_name> is a name
passed with NN_PROCESS_NAME, and <topology_id> is an argument passed
to nn_connect

4. Name service response consists of full a list of nanomsg addresses
to bind/connect to:

bind: "tcp://127.0.0.1:1234"
connect: "ipc:///var/run/topology.sock"
connect: "tcp://192.168.0.1:2345"


Thoughts?

In fact I think it would be clear if this thing is able to work only
when a prototype of both nanomsg hooks and name service  are done. But
both are fairly good amount of work, so it's better to discuss them
ahead of time.

-- 
Paul

Other related posts: