Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 9508|Jawab: 2

Implementasi kunci terdistribusi Zookeeper

[Salin tautan]
Diposting pada 20/03/2018 16.23.52 | | | |
Desain kunci

  Dapatkan ide implementasi kunci:
1. Mulailah dengan membuat direktori sebagai kunci (znode), yang biasanya digunakan untuk menggambarkan entitas terkunci, yang disebut :/lock_node
2. Klien yang ingin mendapatkan kunci membuat znode di direktori kunci sebagai simpul turunan dari kunci/lock_node, dan jenis simpul adalah Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
Misalnya, dua klien membuat znode, /lock_node/lock-1 dan /lock_node/lock-2
3. Klien saat ini memanggil getChildren(/lock_node) untuk mendapatkan semua simpul turunan dari direktori kunci, tanpa mengatur watch, dan kemudian mendapatkan simpul saudara yang lebih kecil dari dirinya sendiri (dibuat pada langkah 2).
4. Node yang lebih kecil dari dirinya sendiri pada langkah 3 tidak ada && node terkecil sama dengan yang dibuat pada langkah 2, menunjukkan bahwa nomor urutan klien saat ini adalah yang terkecil, dapatkan kunci, dan akhiri.
5. Klien memantau status node sementara yang teratur yang terkecil berikutnya
6. Jika status sub-node yang dipantau berubah, lompat ke langkah 3 dan lanjutkan operasi tindak lanjut hingga balapan kunci keluar.     

Penulis tidak akan memperkenalkan kunci distribusi di sini, mari kita lihat diagram alur dari seluruh desain kode sebagai berikut





Mantan:Penjelasan terperinci tentang AutoResetEvent di .net/c#
Depan:Mengenai masalah bahwa Android 7.0 tidak dapat melakukan pengambilan paket https
 Tuan tanah| Diposting pada 20/03/2018 16.49.35 |
Langkah-langkah kunci terdistribusikan Zookeeper:
1. Zookeeper adalah node dengan node, mirip dengan direktori file, jadi kami mengabstraksi kunci ke dalam direktori, zookeeper memiliki node dari EPHEMERAL_SEQUENTIAL jenis, beberapa utas dan ketika node dibuat oleh zookeeper, itu akan membantu kami mengatur urutan untuk membuat, sehingga direktori di bawah node ini berurutan.
2. Dapatkan simpul terkecil dari direktori saat ini, tentukan apakah simpul terkecil adalah simpul saat ini, jika itu berarti kunci berhasil, jika bukan kegagalan akuisisi kunci.
3. Ketika kunci gagal, untuk menghindari efek kawanan, yang harus Anda lakukan adalah mendapatkan simpul sebelumnya dari simpul saat ini, dan kemudian mendengarkan simpul.
4. Saat Anda melakukan ini, saat Anda melepaskan kunci, Anda juga akan memberi tahu node berikutnya.
 Tuan tanah| Diposting pada 20/03/2018 16.54.46 |
Pelajari tentang status penjaga kebun binatang dan jenis acara terlebih dahulu.


Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com