GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengontrol alamat IP sumber dari paket ZeroMQ pada mesin dengan banyak IP?

Yah, ZeroMQ agak sulit dibaca sebagai socket -"rekanan"

Mengapa?

Klasik socket adalah sumber daya yang dapat dimanfaatkan secara gratis.

ZeroMQ adalah hierarki ide dan prinsip perilaku yang agak kompleks (perilaku terdistribusi lebih baik), yang membantu merancang sistem komputasi terdistribusi cerdas, tanpa menyentuh detail tingkat rendah (disarikan dengan baik ZeroMQ), yang mengontrol aliran peristiwa aktual di badai dari kondisi yang keras semua sistem komputasi terdistribusi terbuka untuk dihadapi (dan harus menangani pada tingkat rendah yang sesuai, jika abstraksi tingkat tinggi yang "dijanjikan" oleh ZeroMQ untuk dipertahankan harus dipenuhi dan memudahkan pikiran perancang untuk lebih fokus pada / bagian aplikasi intinya, bukan mendesain ulang roda (dengan semua uji coba dan kesalahan) untuk menarik tali pada sumber daya O/S dan mengocok layanan sistem untuk mengumpulkan hanya beberapa jenis buah yang menggantung rendah ).

Untuk alasan ini lebih baik langsung lupakan ZeroMQ menjadi "sesuatu-seperti- socket "

Hierarki ZeroMQ dalam waktu kurang dari lima detik

1:
ZeroMQ menjanjikan penggunaan ulang yang mudah dari beberapa Pola Komunikasi Formal yang Dapat Diskalakan arketipe menawarkan perilaku terdistribusi tertentu { PUB/SUB | PUSH/PULL | PAIR/PAIR | XPUB/XSUB | ... | REQ/REP } .

2:
Kecuali kasus penggunaan eksklusif hanya tanpa perangkat inproc:// transport-class, dalam semua kasus lainnya, ZeroMQ memerlukan satu atau beberapa instance "mesin yang dapat disetel " - Context( nIOthreads = N ) , N >= 1 .

3:
Memiliki ini, apa saja ( soket mendatang ) Titik Akses bisa dibuat contoh, dengan pola dasar perilaku sejak saat lahir:

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

4:
Memiliki "Titik Akses " contoh sudah siap "di dalam" "mesin lokal ", seseorang dapat mengunci materialisasinya dalam realitas eksternal, menggunakan satu atau lebih ( ya, lebih ... WOW! Artinya lebih banyak tarikan masuk ke / peluit bertiup dari satu Titik Akses "simpul-perilaku" ) panggilan ke salah satu metode ini:
.bind( <transport-class>://<a-class-specific-address> )
atau
.connect( <transport-class>://<a-class-specific-address> )

5:
Jika dan hanya jika sebuah .bind() -RTO-ready Access Point A "dikunjungi " oleh .connect() langsung pertama -RTO-ready Access Point B, memiliki pasangan perilaku yang cocok, arketipe perpesanan/pensinyalan ZeroMQ aktif ( menamakannya juga soket mungkin digunakan karena alasan historis, untuk memudahkan penjelasan pada waktunya )

( PUB/PUB tidak akan pernah cocok, karena alasan yang jelas, sedangkan PUB/SUB dan banyak pasangan perilaku-pola dasar lainnya akan dan melakukan kecocokan yang indah dan membentuk perilaku yang "cocok" bersama yang akhirnya akan ditayangkan dan tetap demikian )

Jadi,
bagaimana saya melakukan hal yang sama dengan soket Python ZeroMQ,
diberikan mesin yang memiliki banyak alamat?

Cukup gunakan spesifikasi yang memenuhi syarat dalam panggilan ke
.bind( "{ tcp | pgm | epgm }://<ip>:<port#>" ) metode dan Anda selesai.

Semudah itu.

Keren, bukan?

Banyak kejutan menyenangkan lainnya di bawah kap penyetelan kinerja, pencukuran latensi, dan penyesuaian keamanan.


Linux
  1. Bagaimana saya bisa mengontrol keyboard dan mouse dengan Python?

  2. Bagaimana saya bisa mengetahui alamat IP pengguna lain yang login di mesin jarak jauh yang sama?

  3. Bagaimana cara Linux mempertahankan kendali CPU pada mesin single-core?

  1. Bagaimana Cara Mengubah Ekstensi Banyak File?

  2. Kontrol Alamat Sumber Untuk Kueri Whois?

  3. Cara mengambil banyak file dari mesin jarak jauh ke lokal dengan Ansible

  1. Bagaimana Cara Menggunakan Alias ​​​​Ssh yang Sama Dengan Beberapa Alamat Host/port/dll.?

  2. Bagaimana Mengontrol Posisi Indikator yang Dibuat Dengan Appindicator.indicator?

  3. Cara mengatur alamat IP dari C di linux