Catatan
Mencari serf.io? Situs web SERF ditutup pada 10/02/2024. Dokumen yang sebelumnya dilayani dari Serf.io dapat ditemukan https://github.com/hashicorp/serf/blob/master/docs/index.html.markdown
SERF adalah solusi terdesentralisasi untuk penemuan layanan dan orkestrasi yang ringan, sangat tersedia, dan toleran terhadap kesalahan.
Serf berjalan di Linux, Mac OS X, dan Windows. Protokol gosip yang efisien dan ringan digunakan untuk berkomunikasi dengan node lain. SERF dapat mendeteksi kegagalan simpul dan memberi tahu sisa cluster. Sistem acara dibangun di atas SARF, memungkinkan Anda menggunakan protokol gosip SERF untuk menyebarkan peristiwa seperti penyebaran, perubahan konfigurasi, dll. SERF sepenuhnya tidak ada lagi tanpa satu titik kegagalan tunggal.
Berikut adalah beberapa contoh kasus penggunaan budak, meskipun ada banyak lainnya:
Pertama, unduh biner SERF yang sudah dibangun untuk sistem operasi Anda, kompilasi sendiri, atau instal menggunakan go get -u github.com/hashicorp/serf/cmd/serf
.
Selanjutnya, mari kita mulai beberapa agen budak. Agen berjalan sampai mereka disuruh berhenti dan menangani komunikasi tugas pemeliharaan budak. Dalam pengaturan SERF nyata, setiap node dalam sistem Anda akan menjalankan satu atau lebih agen SERF (dapat menjalankan beberapa agen jika Anda menjalankan beberapa jenis cluster. Misalnya server web vs server memkached).
Mulailah setiap agen SERF dalam sesi terminal terpisah sehingga kita dapat melihat output masing -masing. Mulai agen pertama:
$ serf agent -node=foo -bind=127.0.0.1:5000 -rpc-addr=127.0.0.1:7373
...
Mulai agen kedua di sesi terminal lain (saat yang pertama masih berjalan):
$ serf agent -node=bar -bind=127.0.0.1:5001 -rpc-addr=127.0.0.1:7374
...
Pada titik ini dua agen budak berjalan secara mandiri tetapi masih belum sadar satu sama lain. Sekarang mari kita beri tahu agen pertama yang bergabung dengan cluster yang ada (agen kedua). Saat memulai agen SERF, Anda harus bergabung dengan cluster yang ada dengan menentukan setidaknya satu anggota yang ada. Setelah ini, gosip budak dan sisa cluster menjadi sadar akan gabungan. Jalankan perintah berikut dalam sesi terminal ketiga.
$ serf join 127.0.0.1:5001
...
Jika Anda mengawasi terminal Anda, Anda akan melihat kedua agen budak menjadi sadar akan gabungan. Anda dapat membuktikannya dengan menjalankan serf members
untuk melihat anggota kluster budak:
$ serf members
foo 127.0.0.1:5000 alive
bar 127.0.0.1:5001 alive
...
Pada titik ini, Anda dapat Ctrl-C atau memaksa membunuh salah satu agen SERF, dan mereka akan memperbarui daftar keanggotaan mereka dengan tepat. Jika Anda ctrl-C agen budak, itu akan dengan anggun pergi dengan memberi tahu kelompok niatnya untuk pergi. Jika Anda memaksa membunuh agen, pada akhirnya akan (biasanya dalam hitungan detik) terdeteksi oleh anggota lain dari cluster yang akan memberi tahu cluster tentang kegagalan simpul.
Dokumentasi lengkap dan komprehensif dapat dilihat di situs web SERF:
https://github.com/hashicorp/serf/tree/master/docs
Jika Anda ingin bekerja pada budak itu sendiri, pertama -tama Anda perlu diinstal ( diperlukan versi 1.10+). Pastikan Anda telah dipasang dengan benar, termasuk menyiapkan gopath Anda.
Selanjutnya, klon repositori ini menjadi $GOPATH/src/github.com/hashicorp/serf
dan kemudian cukup ketik make
. Dalam beberapa saat, Anda akan memiliki serf
dapat dieksekusi yang dapat dieksekusi:
$ make
...
$ bin/serf
...
Catatan: make
juga akan menempatkan salinan yang dapat dieksekusi di bawah $GOPATH/bin/
Serf adalah perpustakaan pertama dan terutama dengan antarmuka baris perintah, serf
. Perpustakaan SERF tidak tergantung pada agen baris perintah, serf
. Binary serf
terletak di bawah cmd/serf
dan dapat diinstal Stand Alone dengan menerbitkan perintah go get -u github.com/hashicorp/serf/cmd/serf
. Aplikasi yang menggunakan pustaka SERF hanya perlu menyertakan github.com/hashicorp/serf
.
Tes dapat dijalankan dengan mengetik make test
.
Jika Anda membuat perubahan pada kode, jalankan make format
untuk secara otomatis memformat kode sesuai dengan standar GO.