GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Replikasi CouchDB di Ubuntu 16.04

Dalam artikel hari ini, kita akan mengatur replikasi CouchDB di Ubuntu 16.04. CouchDB adalah database NoSQL yang sangat mirip dengan cassandra. Alih-alih Java Cassandra, CouchDB ditulis Erlang dan merupakan proyek Apache Software Foundation sejak 2008. Basis data ini berorientasi pada dokumen, tidak seperti MongoDB. Untuk tutorial ini, Anda memerlukan dua node yang menjalankan Ubuntu 16.04 Server. Saya akan menggunakan instance KVM di laptop saya, Anda dapat menggunakan VM atau mesin fisik. Jadi mari kita mulai.

Menginstal dan CouchDB pada node Ubuntu

Mari kita perbarui daftar sumber terlebih dahulu

sudo apt update

Selanjutnya kita install package software-properties-common yang memungkinkan kita untuk menambahkan repositori PPA. Ini mungkin disertakan secara default, tetapi jika tidak, Anda perlu menjalankan perintah ini

sudo apt install software-properties-common

Selanjutnya kita tambahkan repositori untuk couchdb dari mana kita akan menginstal software database

sudo add-apt-repository ppa:couchdb/stable

Kemudian kita dapat menginstal couchdb dengan perintah sederhana:

sudo apt-get install couchdb

Setelah perintah ini dijalankan, couchdb diinstal dan kita akan berjalan di port 5984 apakah kita bisa menggunakan curl untuk mendapatkan info tentang database

curl localhost:5984

Seperti yang kita lihat, ini sudah berjalan.

Cara membuat dan menghapus basis data

Couchdb dimanipulasi melalui permintaan http. Saat Anda ingin sesuatu dilakukan, Anda membuat permintaan di localhost pada port default tempat CouchDB berjalan. Itu adalah port 5984. Untuk alasan keamanan, Anda hanya dapat melakukan ini di localhost, di mesin tempat couchdb dijalankan.

Mari tambahkan database:

miki@ubuntu-1:~$ curl -X PUT localhost:5984/new_database
{"ok":true}

Sekarang mari kita daftar semua database pada sistem:

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users","new_database"]

Dua yang pertama ada di sana secara default, database_baru adalah apa yang kami buat. Mari kita menghapusnya. Penghapusan database dilakukan dengan perintah berikut

miki@ubuntu-1:~$ curl -X DELETE http://127.0.0.1:5984/new_database
{"ok":true}

Sekarang jalankan perintah kedua lagi

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users"]

Kami melihat bahwa database_baru hilang, saat kami menghapusnya.

Futon - GUI CouchDB

Jika Anda mengunjungi http://localhost:5984/_utils dengan browser Anda, Anda akan menemukan Futon. Futon adalah front end CouchDB GUI. Tetapi seperti yang disebutkan, CouchDB untuk alasan keamanan hanya memungkinkan administrasi dari localhost, yang berarti dari server Anda menginstal CouchDB. Anda tidak dapat mengetikkan alamat IP server alih-alih localhost. Jadi jika Anda ingin mengelola server Anda dari laptop Anda, kami perlu menggunakan sedikit trik. Kita perlu membuat ssh tunnel ke server, membuat mini VPN dan membuat server Anda berpikir bahwa permintaan itu datang dari localhost. Untuk melakukannya, di komputer lokal Anda, ketik perintah berikut:

miki@ThinkPad-X220T:~$ ssh -L5984:127.0.0.1:5984 [email protected]

Ini akan membuat terowongan yang kita butuhkan, dan selanjutnya Anda dapat menjalankan browser Anda dan menavigasi ke http://localhost:5984/_utils/index.html

Ini akan memberi Anda antarmuka pengguna yang mirip dengan ini

Karena kita akan mereplikasi database di bab berikutnya, kita perlu mengatur database tujuan kita untuk menerima replika dari lokasi selain localhost. Ini dapat diatur dalam parameter bind_address di halaman konfigurasi Futon. Itu perlu disetel ke 0.0.0.0 untuk mendengarkan di semua ip daripada hanya localhost. Sesuatu seperti ini:

Anda dapat melakukan ini di kedua node Anda (Anda perlu membuat terowongan ssh baru untuk node lain) tetapi umumnya hanya menargetkan di mana replika dibuat perlu mendengarkan semua alamat IP. Sumber hanya dapat terus mendengarkan localhost.

Mereplikasi database secara lokal

Mereplikasi database, seperti yang lainnya di CoucdDB, juga dilakukan dengan permintaan HTTP. Anda perlu menentukan sumber dan database tujuan. Tujuan dapat berupa basis data lokal atau jarak jauh. Karena kita sudah menyetel ubuntu-1, dengarkan semua ip, mari buat db yang akan kita tiru di host ubuntu-2.

miki@ubuntu-2:~$ curl -X PUT localhost:5984/db-replica
{"ok":true}

Sekarang mari kita lihat bagaimana kita dapat mereplikasi database ini secara lokal. Di server yang sama

curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://localhost:5984/foo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"f8fa7b615b4e951d7ab7254ed58d049d+continuous+create_target"}

Perintah ini harus membuat database foo di host lokal, dan sebagai sumber harus mengambil database db-replica yang sudah kita buat sebelumnya. Kami juga mengaktifkan opsi berkelanjutan, yang berarti bahwa basis data akan disinkronkan secara berkala ketika Anda membuat perubahan sumber basis data, yang dalam hal ini adalah db-replica. Setelah menjalankan perintah ini, mari periksa semua database yang tersedia

miki@ubuntu-2:~$ curl -X GET localhost:5984/_all_dbs

["_replicator","_users","db-replica","foo"]

Basis data foo telah dibuat.

Replikasi jarak jauh

Mari kita coba sekarang untuk melakukannya dari jarak jauh, sumber kita lagi db-replika di server ubuntu-2, dan target kita akan jauh di server ubuntu-1 kita. Ini akan membuat database baru jika tidak ada (parameter create_target) dan akan terus menyinkronkan replika untuk semua perubahan yang terjadi.

miki@ubuntu-2:~$ curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://192.168.122.223:5984/remotefoo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"cf7f6399835a893ab48282cb269eb1ab+continuous+create_target"}

Mari kita periksa dbs di server ubuntu-1

miki@ubuntu-1:~$ curl -X GET localhost:5984/_all_dbs
["_replicator","_users","dbtest","remotefoo"]

Kita dapat melihat bagaimana replikasi jarak jauh bekerja. Jika Anda hanya menginginkan replikasi satu kali, Anda perlu mengubah parameter kontinu menjadi false atau cukup menghilangkannya. Jika Anda ingin melihat log couchDB , Anda dapat menemukannya di direktori /var/log/couchdb/couch.log. Anda memerlukan sudo atau hak akses root untuk mengaksesnya, dan jika Anda ingin melihat log secara interaktif, perintah ini akan melakukannya

sudo tail -f /var/log/couchdb/couch.log

Kesimpulan

Kami telah melalui perintah dasar dan penggunaan CouchDB. Pembuatan database baru, penghapusan, replikasi secara lokal atau melalui jaringan semuanya dilakukan dengan permintaan HTTP dan dapat dikodekan ke aplikasi Anda. Memeriksa log dilakukan dengan perintah tail -f normal, dan ketika GUI diperlukan, kami memiliki Futon, yang cukup intuitif untuk membantu Anda melakukan semua tugas yang menurut Anda tidak cukup nyaman untuk dilakukan di baris perintah. Itu saja untuk artikel ini, terima kasih telah membaca dan selamat siang.


Ubuntu
  1. Cara Mengatur HAProxy di Ubuntu 16.04

  2. Cara Menginstal CouchDB di Ubuntu 20.04

  3. Cara Mengatur Replikasi Master Slave MariaDB di Ubuntu 18.04

  1. Cara Mengatur Firewall UFW di Ubuntu 18.04

  2. Cara Mengatur Elasticsearch di Ubuntu 18.04 &16.04 LTS

  3. Setup Rsyslog Server di Ubuntu 20.04 - Bagaimana cara melakukannya?

  1. Cara mengatur server OpenVPN di Ubuntu 20.04

  2. Cara Menginstal CouchDB di Ubuntu 18.04

  3. Cara Menginstal CouchDB di Ubuntu 20.04