GNU/Linux >> Znalost Linux >  >> Linux

Jak ovládat zdrojovou IP adresu paketu ZeroMQ na počítači s více IP adresami?

No, ZeroMQ je trochu složitější na čtení jako socket -"protistrana"

Proč?

Klasické socket je volně dostupný zdroj.

ZeroMQ je poměrně složitá hierarchie nápadů a principů chování (lepší - distribuované chování), které pomáhají navrhovat chytré distribuované výpočetní systémy, aniž by se dotýkaly nízkoúrovňových (dobře abstrahovaných ZeroMQ) detailů, které řídí skutečný tok událostí v bouřích. drsným podmínkám jsou všechny distribuované výpočetní systémy otevřené (a musí se odpovídajícím způsobem vypořádat s nízkou úrovní, pokud mají být splněny abstrakce na vysoké úrovni „slíbené“ ZeroMQ, které mají být dodrženy a usnadnit mysli designérů soustředit se spíše na své/ její hlavní aplikační část, nikoli předělání kol (se všemi pokusy a omyly) na tahání za nitky na O/S zdrojích a protřepávání systémových služeb pro sběr jen několika málo visících druhů ovoce).

Z těchto důvodů raději rovnou zapomeňte, že ZeroMQ bude „něco jako- socket "

Hierarchie ZeroMQ za méně než pět sekund

1:
ZeroMQ slibuje snadné opětovné použití několika triviálních archetypů škálovatelných formálních komunikačních vzorů nabízející konkrétní distribuované chování { PUB/SUB | PUSH/PULL | PAIR/PAIR | XPUB/XSUB | ... | REQ/REP } .

2:
S výjimkou případu, kdy výhradně používáte pouze bez zařízení inproc:// transportní třída, ve všech ostatních případech potřebuje ZeroMQ jednu nebo více instancí laditelného "enginu " - Context( nIOthreads = N ) , N >= 1 .

3:
S tímto, libovolným ( budoucí zásuvka ) Přístupový bod mohl získat instanci a nést archetyp chování od samého okamžiku narození:

aSubscribeCHANNEL = aLocalCONTEXT.socket( zmq.SUB )      # this is NOT a <SOCKET>
#                                 ^^^^^^__________________ even it was typed in

4:
Mít „Přístupový bod instance připravena „uvnitř“ místního „enginu “, lze uzamknout jeho materializaci ve vnější realitě pomocí jednoho nebo více (ano, více... WOW! To znamená více příchozích tahání za nitky do / píšťal vycházejících z jednoho „chování-uzlu“ přístupového bodu) volání jedné z těchto metod:
.bind( <transport-class>://<a-class-specific-address> )
nebo
.connect( <transport-class>://<a-class-specific-address> )

5:
Pouze tehdy, když .bind() -Přístupový bod A připravený na RTO "byl navštíven “ prvním živým .connect() -Přístupový bod B připravený na RTO, který má jakékoli párování shodného chování, se aktivuje archetyp zpráv/signalizace ZeroMQ (také jej pojmenuje zásuvka byl pravděpodobně použit z historických důvodů, aby se usnadnilo vysvětlení v dobách )

( PUB/PUB se z pochopitelných důvodů nikdy nevejde, zatímco PUB/SUB a mnoho dalších párů chování a archetypů se bude krásně shodovat a vytvoří vzájemně „kompatibilní“ chování, které se konečně uvede do života a zůstane tak )

Takže
jak udělám to samé se socketem Python ZeroMQ,
vzhledem k počítači, který má více adres?

Jednoduše použijte plně kvalifikovanou specifikaci ve výzvě
.bind( "{ tcp | pgm | epgm }://<ip>:<port#>" ) a máte hotovo.

Tak snadné.

Skvělé, že?

Mnoho dalších příjemných překvapení pod kapotou ladění výkonu, snížení latence a vyladění zabezpečení.


Linux
  1. Jak auditovat oprávnění pomocí příkazu find

  2. Jak změnit příponu více souborů?

  3. Řídit zdrojovou adresu pro dotazy Whois?

  1. Jak ovládat pozici indikátoru vytvořeného pomocí Appindicator.indicator?

  2. Jak mohu ovládat klávesnici a myš pomocí Pythonu?

  3. Jak zjistit velikost vyrovnávací paměti soketu linuxu

  1. Jak používat stejný alias Ssh s více hostitelskými adresami/porty/atd.?

  2. Jak si Linux zachovává kontrolu nad CPU na jednojádrovém stroji?

  3. více fyzických rozhraní s adresami IP ve stejné podsíti