线上的实际情况是总共有4台服务器。现在主要用的是memcache
,并且目前只用了61M左右的内存空间。公司的需求是逐步把整个网站的缓存迁移到redis。
目前的想法是拿3台服务器拿来做集群,每台服务器配置一个Master实例。为了实现高可用,还需要给每台服务器配置一个Slave实例。我想问的是,可不可以将Master实例和Slave实例配置到一个主机当中,以及这样配置所带来的影响?
还有一种想法是,只用2台服务器,1台服务器运行3个Master实例,另一台服务器运行3个Slave实例。大家还有更好的解决方案吗?
还听他们说,集群的话至少要有3个主节点。用2个主节点不行吗?
Jika anda meletakkan tuan dan hamba pada mesin yang sama, akan ada masalah:
Kedua-dua tuan dan hamba perlu mengisi memori semasa berjalan, dan memori mesin mungkin tidak mencukupi
Jika mesin mati, dimatikan, atau rangkaian diputuskan, maka tiada ketersediaan tinggi untuk tuan dan hamba.
Adalah yang terbaik untuk meletakkan tuan dan hamba pada mesin yang berbeza.
Mengapa ia adalah 3 bukannya 2. Ini adalah strategi terbaik semasa pilihan raya kelompok. Redis3.0 mula menyokong kelompok.
Secara amnya, untuk kluster mencapai konsensus mengenai keadaan awam tertentu, lebih separuh daripada kejadian redis dalam kluster perlu bersetuju.
Mengapa kita memerlukan majoriti? Kerana kita perlu mempertimbangkan situasi split-brain dalam kelompok, iaitu, partition rangkaian
Majoriti boleh menjamin bahawa tidak kira bagaimana rangkaian itu diasingkan, tidak kira bagaimana otaknya Tidak kira berapa banyak kelompok kecil yang diasingkan gugusan besar, sekurang-kurangnya satu tika dalam kelompok kecil yang boleh menyediakan perkhidmatan (bermakna terdapat lebih separuh daripada kejadian) disegerakkan kepada maklumat status terkini.
Setelah memahami majoriti yang disebutkan di atas, maka kita mempunyai latar belakang untuk bercakap tentang mengapa ia nombor ganjil
Nombor genap juga boleh mempunyai majoriti, contohnya, 4 Untuk sekumpulan contoh, 3 adalah majoriti.
Tetapi kenapa nombor ganjil masih yang terbaik?
Jika kluster mempunyai 5 kejadian, ia hanya boleh bertolak ansur dengan ranap 2 kejadian.
Jika terdapat 6 kejadian dalam kelompok, ia hanya boleh bertolak ansur dengan ranap 2 kejadian.
Dengan toleransi yang sama, apakah perbezaan antara 6 dan 5:
Memandangkan kluster perlu berkomunikasi antara satu sama lain, semakin banyak kejadian, semakin besar overhed rangkaian
Semakin banyak kejadian, apabila terdapat 5 kejadian, kebarangkalian ranap 3 kejadian adalah kurang daripada apabila terdapat 6 kejadian.
Jadi sudah tentu nombor ganjil adalah yang paling menjimatkan kos.
Boleh jadi, cuma tetapkan port yang berbeza Bagi kesannya, saya rasa ia tidak mempunyai sebarang kesan istimewa.
Jika terdapat 3 mesin, masing-masing akan menjalankan master, dan kemudian meletakkan hamba masing-masing pada mesin yang berbeza untuk membentuk sandaran cincin, bukannya meletakkan telur dalam satu bakul.
Jika anda mempunyai sumber IP yang mencukupi, cari perisian tengah ha untuk melaksanakan ketersediaan tinggi.
Tidak disyorkan untuk meletakkan persekitaran pengeluaran pada mesin fizikal yang sama. Kelompok dengan 3 induk bercakap tentang gugusan 3.0 Jumlah nod yang ganjil memastikan pengundian boleh menghasilkan keputusan yang pasti
Baiklah, mari letakkan Budak itu di tempat lain.
Apa pendapat anda tentang reka bentuk ini?