Contoh konfigurasi replikasi
Halaman ini menjelaskan beberapa kasus penggunaan umum untuk replikasi Bigtable dan menampilkan setelan yang dapat Anda gunakan untuk mendukung kasus penggunaan ini.
- Mengisolasi beban kerja analisis batch dari aplikasi lain
- Membuat ketersediaan tinggi (HA)
- Memberikan pencadangan hampir real-time
- Mempertahankan ketersediaan tinggi dan ketahanan regional
- Menyimpan data di dekat pengguna
Halaman ini juga menjelaskan cara menentukan setelan yang akan digunakan untuk kasus penggunaan lainnya.
Sebelum membaca halaman ini, Anda harus sudah memahami ringkasan replikasi Bigtable.
Sebelum menambahkan cluster ke instance, Anda harus mengetahui batasan yang berlaku saat mengubah kebijakan pembersihan sampah pada tabel yang direplikasi.
Pada umumnya, aktifkan penskalaan otomatis untuk cluster instance Anda. Penskalaan otomatis memungkinkan Bigtable otomatis menambahkan dan menghapus node ke cluster berdasarkan beban kerja.
Jika Anda memilih alokasi node manual, sediakan node yang cukup di setiap cluster dalam instance untuk memastikan bahwa setiap cluster dapat menangani replikasi selain beban yang diterima dari aplikasi. Jika cluster tidak memiliki node yang memadai, penundaan replikasi dapat meningkat, cluster dapat mengalami masalah performa karena penumpukan memori, dan operasi tulis ke cluster lain dalam instance mungkin ditolak.
Contoh dalam dokumen ini menjelaskan cara membuat instance, tetapi Anda juga dapat menambahkan cluster ke instance yang ada.
Mengisolasi workload analisis batch dari aplikasi lain
Jika Anda menggunakan satu cluster untuk menjalankan tugas analisis batch yang melakukan banyak pembacaan besar bersama aplikasi yang melakukan campuran pembacaan dan penulisan, tugas batch besar dapat memperlambat proses bagi pengguna aplikasi. Dengan replikasi, Anda dapat menggunakan profil aplikasi dengan pemilihan rute cluster tunggal untuk merutekan tugas analisis batch dan traffic aplikasi ke cluster yang berbeda, sehingga tugas batch tidak memengaruhi pengguna aplikasi Anda.
Untuk mengisolasi dua beban kerja:
Buat instance dengan dua cluster.
Buat dua profil aplikasi, satu bernama
live-traffic
dan satu lagi bernamabatch-analytics
.Jika ID cluster Anda adalah
cluster-a
dancluster-b
, profil aplikasilive-traffic
harus merutekan permintaan kecluster-a
dan profil aplikasibatch-analytics
harus merutekan permintaan kecluster-b
. Konfigurasi ini memberikan konsistensi baca-tulis untuk aplikasi yang menggunakan profil aplikasi yang sama, tetapi tidak untuk aplikasi yang menggunakan profil aplikasi yang berbeda.Anda dapat mengaktifkan transaksi baris tunggal di profil aplikasi
live-traffic
jika diperlukan. Tidak perlu mengaktifkan transaksi baris tunggal di profil aplikasibatch-analytics
, dengan asumsi bahwa Anda hanya akan menggunakan profil aplikasi ini untuk operasi baca.Gunakan profil aplikasi
live-traffic
untuk menjalankan beban kerja traffic live.Saat workload traffic langsung berjalan, gunakan profil aplikasi
batch-analytics
untuk menjalankan workload batch hanya baca.
Untuk mengisolasi dua workload yang lebih kecil dari satu workload yang lebih besar:
Buat instance dengan tiga cluster.
Langkah-langkah ini mengasumsikan bahwa cluster Anda menggunakan ID
cluster-a
,cluster-b
, dancluster-c
.Buat profil aplikasi berikut:
live-traffic-app-a
: Pemilihan rute cluster tunggal dari aplikasi Anda kecluster-a
live-traffic-app-b
: Pemilihan rute cluster tunggal dari aplikasi Anda kecluster-b
batch-analytics
: Pemilihan rute satu cluster dari tugas analisis batch kecluster-c
Gunakan profil aplikasi traffic langsung untuk menjalankan workload traffic langsung.
Saat workload traffic langsung berjalan, gunakan profil aplikasi
batch-analytics
untuk menjalankan workload batch hanya baca.
Membuat ketersediaan tinggi (HA)
Jika instance hanya memiliki satu cluster, ketahanan dan ketersediaan data Anda terbatas pada zona tempat cluster tersebut berada. Replikasi dapat meningkatkan ketahanan dan ketersediaan dengan menyimpan salinan data Anda yang terpisah di beberapa zona atau region dan secara otomatis melakukan failover antar-cluster jika diperlukan.
Untuk mengonfigurasi instance Anda untuk kasus penggunaan ketersediaan tinggi (HA), buat profil aplikasi baru yang menggunakan perutean multi-cluster, atau perbarui profil aplikasi default untuk menggunakan perutean multi-cluster. Konfigurasi ini memberikan konsistensi pada akhirnya. Anda tidak akan dapat mengaktifkan transaksi baris tunggal karena transaksi baris tunggal dapat menyebabkan konflik data saat Anda menggunakan pemilihan rute multi-cluster.
Konfigurasi untuk meningkatkan ketersediaan meliputi hal berikut.
Cluster di tiga region atau lebih (konfigurasi yang direkomendasikan). Konfigurasi yang direkomendasikan untuk HA adalah instance yang memiliki cluster N+2 yang masing-masing berada di region yang berbeda. Misalnya, jika jumlah minimum cluster yang diperlukan untuk menayangkan data adalah 2, Anda memerlukan instance dengan empat cluster untuk mempertahankan HA. Konfigurasi ini memberikan waktu aktif bahkan dalam kasus yang jarang terjadi saat dua region menjadi tidak tersedia. Sebaiknya Anda menyebarkan cluster di beberapa benua.
Contoh konfigurasi:
cluster-a
di zonaus-central1-a
di Iowacluster-b
di zonaeurope-west1-d
di Belgiacluster-c
di zonaasia-east1-b
di Taiwan
Dua cluster di region yang sama, tetapi zona yang berbeda. Opsi ini memberikan ketersediaan tinggi dalam ketersediaan region, kemampuan untuk beralih tanpa menimbulkan biaya replikasi lintas region, dan tidak ada peningkatan latensi saat failover. Data Anda di instance Bigtable yang direplikasi tersedia selama zona tempat data direplikasi tersedia.
Contoh konfigurasi:
cluster-a
di zonaaustralia-southeast1-a
di Sydneycluster-b
di zonaaustralia-southeast1-b
di Sydney
Dua cluster di region yang berbeda. Konfigurasi multi-region ini menyediakan ketersediaan tinggi seperti konfigurasi multi-zona sebelumnya, tetapi data Anda tersedia meskipun Anda tidak dapat terhubung ke salah satu region.
Anda akan dikenai biaya untuk mereplikasi operasi tulis antar-region.
Contoh konfigurasi:
cluster-a
di zonaasia-northeast1-c
di Tokyocluster-b
di zonaasia-east2-b
di Hong Kong
Dua cluster di region A dan cluster ketiga di region B. Opsi ini membuat data Anda tersedia meskipun Anda tidak dapat terhubung ke salah satu region, dan menyediakan kapasitas tambahan di region A.
Anda akan dikenai biaya untuk mereplikasi operasi tulis antar-region. Jika Anda menulis ke region A, Anda akan dikenai biaya satu kali karena hanya memiliki satu cluster di region B. Jika Anda menulis ke region B, Anda akan dikenai biaya dua kali karena memiliki dua cluster di region A.
Contoh konfigurasi:
cluster-a
di zonaeurope-west1-b
di Belgiacluster-b
di zonaeurope-west1-d
di Belgiacluster-c
di zonaeurope-north1-c
di Finlandia
Memberikan pencadangan hampir secara real-time
Dalam beberapa kasus—misalnya, jika Anda tidak dapat membaca data yang sudah tidak berlaku—Anda harus selalu merutekan permintaan ke satu cluster. Namun, Anda tetap dapat menggunakan replikasi dengan menangani permintaan dengan satu cluster dan menyimpan cluster lain sebagai pencadangan hampir real-time. Jika cluster penyaluran tidak tersedia, Anda dapat meminimalkan periode nonaktif dengan melakukan failover ke cluster cadangan secara manual.
Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini, buat profil aplikasi yang menggunakan perutean cluster tunggal atau perbarui profil aplikasi default untuk menggunakan perutean cluster tunggal. Cluster yang Anda tentukan di profil aplikasi menangani permintaan masuk. Cluster lain berfungsi sebagai cadangan jika Anda perlu melakukan failover. Pengaturan ini terkadang dikenal sebagai konfigurasi aktif-pasif, dan menyediakan konsistensi kuat dan konsistensi read-your-write. Anda dapat mengaktifkan transaksi baris tunggal di profil aplikasi jika perlu.
Untuk menerapkan konfigurasi ini:
Gunakan profil aplikasi dengan perutean cluster tunggal untuk menjalankan beban kerja.
Gunakan konsol Google Cloud untuk memantau cluster instance dan mengonfirmasi bahwa hanya satu cluster yang menangani permintaan masuk.
Cluster lain akan tetap menggunakan resource CPU untuk melakukan replikasi dan tugas pemeliharaan lainnya.
Perbarui profil aplikasi agar mengarah ke cluster kedua di instance Anda.
Anda menerima peringatan tentang hilangnya konsistensi read-your-writes, yang juga berarti Anda kehilangan konsistensi yang kuat.
Jika mengaktifkan transaksi baris tunggal, Anda juga akan menerima peringatan tentang potensi kehilangan data. Anda akan kehilangan data jika mengirim penulisan yang bertentangan saat failover terjadi.
Lanjutkan memantau instance Anda. Anda akan melihat bahwa cluster kedua menangani permintaan masuk.
Mempertahankan ketersediaan tinggi dan ketahanan regional
Misalnya, Anda memiliki konsentrasi pelanggan di dua wilayah yang berbeda dalam benua. Anda ingin menayangkan setiap konsentrasi pelanggan dengan cluster Bigtable sedekat mungkin dengan pelanggan. Anda ingin data Anda memiliki ketersediaan tinggi dalam setiap region, dan Anda mungkin menginginkan opsi failover jika satu atau beberapa cluster tidak tersedia.
Untuk kasus penggunaan ini, Anda dapat membuat instance dengan dua cluster di region A dan dua cluster di region B. Konfigurasi ini memberikan ketersediaan tinggi meskipun Anda tidak dapat terhubung ke region Google Cloud. Hal ini juga memberikan ketahanan regional karena meskipun zona tidak tersedia, cluster lain di region zona tersebut masih tersedia.
Anda dapat memilih untuk menggunakan perutean multi-cluster atau perutean cluster tunggal untuk kasus penggunaan ini, bergantung pada kebutuhan bisnis Anda.
Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini:
Buat instance Bigtable dengan empat cluster: dua di region A dan dua di region B. Cluster di region yang sama harus berada di zona yang berbeda.
Contoh konfigurasi:
cluster-a
di zonaasia-south1-a
di Mumbaicluster-b
di zonaasia-south1-c
di Mumbaicluster-c
di zonaasia-northeast1-a
di Tokyocluster-d
di zonaasia-northeast1-b
di Tokyo
Tempatkan server aplikasi di dekat setiap region.
Anda dapat memilih untuk menggunakan perutean multi-cluster atau perutean cluster tunggal untuk kasus penggunaan ini, bergantung pada kebutuhan bisnis Anda. Jika Anda menggunakan pemilihan rute multi-cluster, Bigtable akan menangani kegagalan secara otomatis. Jika menggunakan rute cluster tunggal, Anda menggunakan penilaian Anda sendiri untuk memutuskan kapan harus melakukan failover ke cluster lain.
Opsi pemilihan rute cluster tunggal
Anda dapat menggunakan perutean cluster tunggal untuk kasus penggunaan ini jika tidak ingin cluster Bigtable otomatis melakukan failover jika zona atau region tidak tersedia. Opsi ini adalah pilihan yang tepat jika Anda ingin mengelola biaya dan latensi yang mungkin terjadi jika Bigtable mulai merutekan traffic ke dan dari region yang jauh, atau jika Anda lebih suka membuat keputusan failover berdasarkan penilaian atau aturan bisnis Anda sendiri.
Untuk menerapkan konfigurasi ini, buat minimal satu profil aplikasi yang menggunakan perutean cluster tunggal untuk setiap aplikasi
yang mengirim permintaan ke instance. Anda dapat merutekan profil aplikasi ke cluster mana pun di instance Bigtable. Misalnya, jika Anda
memiliki tiga aplikasi yang berjalan di Mumbai dan enam di Tokyo, Anda dapat mengonfigurasi
satu profil aplikasi untuk aplikasi Mumbai agar dirutekan ke asia-south1-a
dan dua
yang dirutekan ke asia-south1-c
. Untuk aplikasi Tokyo, konfigurasikan tiga
profil aplikasi yang dirutekan ke asia-northeast1-a
dan tiga yang dirutekan ke
asia-northeast1-b
.
Dengan konfigurasi ini, jika satu atau beberapa cluster tidak tersedia, Anda dapat melakukan failover manual atau memilih untuk membiarkan data Anda tidak tersedia untuk sementara di zona tersebut hingga zona tersedia lagi.
Opsi pemilihan rute multi-cluster
Jika Anda menerapkan kasus penggunaan ini dan ingin Bigtable secara otomatis melakukan failover ke satu region jika aplikasi Anda tidak dapat menjangkau region lainnya, gunakan pemilihan rute multi-cluster.
Untuk menerapkan konfigurasi ini, buat profil aplikasi baru yang menggunakan perutean multi-cluster untuk setiap aplikasi, atau perbarui profil aplikasi default untuk menggunakan perutean multi-cluster.
Konfigurasi ini memberikan konsistensi pada akhirnya. Jika suatu region tidak tersedia, permintaan Bigtable akan otomatis dikirim ke region lain. Jika hal ini terjadi, Anda akan dikenai biaya untuk traffic jaringan ke region lain, dan aplikasi Anda mungkin mengalami latensi yang lebih tinggi karena jarak yang lebih jauh.
Menyimpan data di dekat pengguna
Jika memiliki pengguna di seluruh dunia, Anda dapat mengurangi latensi dengan menjalankan aplikasi di dekat pengguna dan menempatkan data sedekat mungkin dengan aplikasi Anda. Dengan Bigtable, Anda dapat membuat instance yang memiliki cluster di beberapa region Google Cloud, dan data Anda akan otomatis direplikasi di setiap region.
Untuk kasus penggunaan ini, gunakan profil aplikasi dengan perutean cluster tunggal. Pemilihan rute multi-cluster tidak diinginkan untuk kasus penggunaan ini karena jarak antar-cluster. Jika cluster tidak tersedia dan profil aplikasi multi-clusternya otomatis mengalihkan traffic ke jarak yang jauh, aplikasi Anda mungkin mengalami latensi yang tidak dapat diterima dan menimbulkan biaya jaringan tambahan yang tidak terduga.
Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini:
Buat instance dengan cluster di tiga region geografis yang berbeda, seperti Amerika Serikat, Eropa, dan Asia.
Tempatkan server aplikasi di dekat setiap region.
Buat profil aplikasi yang mirip dengan berikut ini:
clickstream-us
: Pemilihan rute cluster tunggal ke cluster di Amerika Serikatclickstream-eu
: Pemilihan rute cluster tunggal ke cluster di Eropaclickstream-asia
: Pemilihan rute cluster tunggal ke cluster di Asia
Dalam penyiapan ini, aplikasi Anda menggunakan profil aplikasi untuk cluster terdekat. Penulisan ke cluster mana pun otomatis direplikasi ke dua cluster lainnya.
Kasus penggunaan lainnya
Jika Anda memiliki kasus penggunaan yang tidak dijelaskan di halaman ini, gunakan pertanyaan berikut untuk membantu Anda memutuskan cara mengonfigurasi profil aplikasi:
Apakah Anda perlu melakukan transaksi baris tunggal, seperti operasi baca-ubah-tulis (termasuk penambahan dan penambahan) dan operasi periksa-dan-ubah (juga dikenal sebagai mutasi bersyarat atau penulisan bersyarat)?
Jika demikian, profil aplikasi Anda harus menggunakan rute cluster tunggal untuk mencegah kehilangan data, dan Anda harus menangani penggantian kegagalan secara manual.
Apakah Anda ingin Bigtable menangani failover secara otomatis?
Jika demikian, profil aplikasi Anda harus menggunakan rute multi-cluster. Jika cluster tidak dapat memproses permintaan yang masuk, Bigtable akan otomatis dialihkan ke cluster lain. Pelajari failover otomatis lebih lanjut.
Untuk mencegah kehilangan data, Anda tidak dapat mengaktifkan transaksi baris tunggal saat menggunakan pemilihan rute multi-cluster. Pelajari lebih lanjut.
Apakah Anda ingin mempertahankan cluster cadangan atau cadangan jika cluster utama tidak tersedia?
Jika demikian, gunakan rute cluster tunggal di profil aplikasi Anda, dan lakukan failover ke cluster cadangan secara manual jika diperlukan.
Konfigurasi ini juga memungkinkan penggunaan transaksi satu baris jika diperlukan.
Apakah Anda ingin mengirim berbagai jenis traffic ke cluster yang berbeda?
Jika demikian, gunakan rute cluster tunggal di profil aplikasi Anda, dan arahkan setiap jenis traffic ke clusternya sendiri. Lakukan failover antar-cluster secara manual jika perlu.
Anda dapat mengaktifkan transaksi baris tunggal di profil aplikasi jika diperlukan.
Langkah selanjutnya
- Pelajari profil aplikasi lebih lanjut.
- Buat profil aplikasi atau perbarui profil aplikasi yang ada.
- Cari tahu cara kerja failover.