Tencent Cloud Load Balancing CLB Senibina ketersediaan tinggi: Bagaimana menjadikan sistem perniagaan anda "stabil seperti gunung"?
Di dunia Internet, ada dua perkara yang paling membimbangkan arkitek dan bos: satu adalah ledakan perniagaan secara tiba-tiba dan pelayan musnah seketika; yang lain adalah bahawa pelayan tertentu tidak berfungsi tanpa amaran, menyebabkan pengguna tidak dapat mengakses secara kolektif.
Untuk menyelesaikan masalah ini, semua orang akan terlibat dalam "taktik pergaduhan kumpulan" di bahagian bawah-menggunakan beberapa pelayan lagi. Tetapi persoalannya datang: dengan begitu banyak pelayan, kepada siapa permintaan pengguna harus dihantar? Siapa yang terbiar? Siapa yang tidak tahan lagi? Siapa yang sebenarnya "mati"?
Pada masa ini, giliran Cloud Load Balancer (CLB) untuk debut. Ia seperti "polis trafik dan pertolongan cemas" yang berpengalaman, berdiri di barisan hadapan semua pelayan, menyebarkan lalu lintas pengguna secara merata dan pintar ke pelayan belakang.
Hari ini kita akan mengambilnya
Senibina yang sangat tersedia untuk Tencent Cloud CLB
。 Jangan membicarakan istilah profesional yang tidak jelas, gunakan perspektif vernakular dan orang sebenar untuk melihat kaedah inti keras apa yang digunakan oleh Tencent Cloud untuk memastikan bahawa walaupun dalam bencana yang melampau, perniagaan masih dapat "berjalan dan menari".
1. Mengapa penggunaan tinggi mesin tunggal adalah "cadangan palsu"?
Sebelum membincangkan seni bina CLB, pertama-tama kita mencapai kata sepakat:
Mana-mana perkakasan dan sistem satu titik mungkin rosak.
Ramai pasukan yang baru memulakan merasakan bahawa jika saya membeli kereta mewah dengan konfigurasi yang sangat tinggi (membeli pelayan awan dengan konfigurasi yang sangat tinggi), perniagaan saya sangat stabil. Tetapi pada kenyataannya, kabel optik mungkin dipotong oleh pasukan pembinaan, ruang komputer mungkin tidak berfungsi, papan induk mungkin terbakar, dan bahkan peningkatan patch sistem dapat memicu layar biru.
Oleh itu, kestabilan sebenarnya bukan pertaruhan "ia tidak buruk", tetapi "ia rosak, tetapi segera ada tayar ganti, dan pengguna sama sekali tidak dapat menemuinya."
Tencent Cloud CLB pada dasarnya adalah pusat pengedaran lalu lintas. Sekiranya pusat ditutup dengan sendirinya, walaupun terdapat ribuan pelayan di belakang, ia tidak akan berguna. Oleh itu, reka bentuk ketersediaan tinggi CLB itu sendiri adalah nadi keseluruhan sistem perniagaan.
2. "Garis pertahanan tiga peringkat" Tencent Cloud CLB: dari mesin tunggal hingga lintas bandar
Rahsia kemampuan Tencent Cloud CLB untuk mencapai kebolehgunaan 99.99% atau lebih tinggi adalah bahawa ia telah membina tiga lapisan dinding tembaga dan dinding besi dari bawah ke atas. Mari kita lihat lapisan demi lapisan:
Garis pertahanan pertama: "sandaran panas dua mesin" dan pengelompokan di pusat data
Sekiranya anda membeli CLB rangkaian awam paling asas di Tencent Cloud, anda fikir anda hanya membeli satu alamat IP, tetapi sebenarnya, Tencent Cloud telah menyediakan keseluruhan
Kluster tersedia tinggi
。
Pengimbangan beban empat lapisan (berdasarkan LVS/DPDK): Senibina kluster penuh digunakan. Ringkasnya, terdapat sekumpulan pelayan yang bersama-sama membawa lalu lintas anda. Mana-mana pelayan fizikal "mati secara tiba-tiba", dan protokol penghalaan yang mendasari (OSPF/ECMP) secara automatik akan mengalihkan lalu lintas ke pelayan kesihatan lain dalam kelompok dalam milisaat.
Pengimbangan beban tujuh lapisan (berdasarkan Nginx): menggunakan mod Master-Slave atau multiple.
Setelah degupan jantung nod utama berhenti, nod sandaran segera mengambil alih kerja.
Terjemahan langsung:
Anda fikir anda mengupah pengawal, tetapi sebenarnya ada pengawal di belakang anda. Salah seorang dari mereka jatuh, dan orang di belakang segera mengisi tempat duduk, dan pengguna bahkan tidak dapat merasakan halaman web membeku.
Garis pertahanan kedua: bandar yang sama "kehidupan berganda/pelbagai bahagian di bandar yang sama"
Garis pertahanan pertama menyelesaikan masalah "mesin tertentu rosak", tetapi bagaimana jika sesuatu yang serius berlaku di seluruh ruang komputer (kawasan yang boleh digunakan)? Sebagai contoh, pada hari hujan lebat, malangnya bilik komputer A terputus.
Untuk mengelakkan kejadian "angsa hitam" ini, Tencent Cloud CLB menyokong
Ketersediaan tinggi di seluruh kawasan yang ada
。
Apabila anda mengkonfigurasi CLB, anda boleh memilih untuk menyebarkannya di "Daerah Kedua Guangzhou (Utama)" dan "Daerah Ketiga Guangzhou (Persiapan)". Kedua-dua zon yang ada secara fizikal dipisahkan oleh berpuluh-puluh kilometer dan mempunyai bekalan kuasa dan rangkaian bebas.
Dalam keadaan biasa: aliran masuk terutamanya dari kawasan tersedia utama.
Dalam kes yang melampau: Daerah kedua Guangzhou benar-benar terputus hubungan, dan DNS Tencent Cloud dan rangkaian yang mendasari secara automatik akan mengalihkan semua lalu lintas rangkaian luaran ke CLB siap sedia di tiga daerah Guangzhou. Proses ini biasanya dilakukan dalam beberapa saat.
Garis pertahanan ketiga: ketersediaan tinggi global/merentas wilayah yang digabungkan dengan rangkaian Anycast
Sekiranya tahap perniagaan anda cukup tinggi untuk "tidak dapat menerima sebarang bentuk bencana wilayah tunggal" (seperti pemutusan rangkaian tulang belakang seluruh wilayah China Selatan),CLB juga dapat bekerjasama dengan Tencent Cloud
Anycast (siaran apa pun)
Peningkatan teknologi ke ketersediaan tinggi di seluruh dunia.
Ringkasnya, ini bermaksud bahawa bilik komputer di banyak bandar yang berlainan di seluruh dunia telah mengeluarkan alamat IP CLB yang sama. Pengguna di Beijing akan memasuki bilik komputer Beijing yang berdekatan, dan pengguna di Shanghai akan memasuki bilik komputer Shanghai. Sekiranya ruang komputer Shanghai tidak tersedia secara keseluruhan, rangkaian secara automatik akan menarik lalu lintas asal ke Shanghai ke Beijing atau Wuhan. Gaya permainan "ruang untuk keselamatan" ini kini merupakan konfigurasi pencegahan bencana teratas di Internet.
3. Tidak cukup untuk menstabilkan diri: Bagaimana CLB menjaga pelayan belakang?
CLB telah mencapai "King Kong tidak buruk", jadi bagaimana ia dapat memastikan bahawa pelayan perniagaan (CVM/Lighthouse) di belakang tidak akan kehilangan rantai? Terdapat dua mekanisme teras di sini:
1. Pemeriksaan kesihatan tahap milisaat (Pemeriksaan Kesihatan)
CLB seperti penyelia yang tegas, mengetuk pintu pelayan belakang setiap beberapa saat (menghantar Ping, jabat tangan TCP atau permintaan HTTP).
Penyelia: "Pelayan 1, adakah anda masih hidup?" No. 1: "Hidup, semuanya normal." (Terus menghantar lalu lintas) Beberapa saat kemudian... Penyelia: "No. 1, adakah anda masih hidup?" No. 1: (Kerana limpahan memori, tidak ada respons) Penyelia: "Tidak, No. 1 menarik selangkangan, segera keluar dari barisan! Semua lalu lintas berikut diberikan kepada No. 2 dan No. 3!"
Apabila pelayan No. 1 diperbaiki oleh pentadbir dan kembali dalam talian, CLB memeriksa bahawa ia dipulihkan, dan secara automatik ia akan ditambahkan kembali ke pasukan. Seluruh proses
Automasi, campur tangan manual sifar
。
2. Pelbagai algoritma penjadualan pintar (mengajar pelajar sesuai dengan kemampuan mereka)
Industri yang berbeza
Senario perniagaan, strategi untuk menyebarkan lalu lintas juga berbeza. CLB menawarkan beberapa permainan pintar:
Perundingan Berat (WRR): Sekiranya anda mempunyai dua mesin di belakang, satu adalah veteran 4-core 8G dan yang lain adalah titan 32G 16-core. Anda boleh menetapkan berat badan yang lebih tinggi untuk Titans dan membiarkannya membawa lebih banyak lalu lintas.
Sambungan minimum berwajaran (WLC): Sesiapa yang mempunyai sambungan paling aktif sekarang akan memberikan tetamu baru kepada siapa. Sangat sesuai untuk permainan atau perniagaan sambungan yang panjang.
Sumber Hash: Peruntukkan pelayan secara tetap mengikut alamat IP pengguna. Ini dapat memastikan bahawa pengguna yang sama selalu mengakses pelayan back-end yang sama untuk jangka waktu tertentu, dan lebih mudah untuk mengekalkan status log masuk (Sesi).
4. Panduan untuk mengelakkan lubang dalam pertempuran sebenar: Bagaimana benar-benar mengeluarkan ketersediaan tinggi CLB?
Ramai pelajar membeli CLB di Tencent Cloud, tetapi perniagaannya masih sering runtuh. Berikut adalah beberapa "pengalaman menghindari lubang sebenar" yang sering menginjak guruh dalam operasi dan penyelenggaraan sebenar:
Jangan letakkan telur di kawasan yang boleh digunakan: Semasa membeli CLB, anda memilih untuk melintasi kawasan yang boleh digunakan, tetapi pelayan awan (CVM) yang dipasang kemudian ingin menyelamatkan masalah dan membelinya di "Daerah Kedua Guangzhou". Akibatnya, di zon kedua, walaupun CLB kuat, tidak ada pelayan yang dapat berfungsi di belakang, dan menjadi "komandan shell". Pendekatan yang betul adalah: CLB melintasi zon yang tersedia, dan pelayan belakang juga harus diedarkan secara merata di zon yang berbeza.
Ingatlah untuk membuka "Sesi Tetap", tetapi jangan menyalahgunakannya: Sekiranya laman web anda perlu log masuk, membuka sesi Tetap dapat mengelakkan pengguna memuat semula laman web dan ditendang di luar talian. Walau bagaimanapun, jika masa sesi ditetapkan terlalu lama, ia boleh menyebabkan pengedaran lalu lintas yang tidak rata (semua pelanggan besar dihimpit pada mesin yang sama).
Gunakan "keanggunan tanpa rehat" dengan baik (penghijrahan sambungan yang lancar): Apabila anda ingin mengekalkan pelayan di hujung belakang di luar talian, jangan lepaskan secara langsung. Hidupkan fungsi "Elegant Overtime" CLB, ia akan membolehkan pengguna lama yang ada menyelesaikan kerja mereka (seperti menghantar fail ini, membayar pembayaran ini), dan pada masa yang sama tidak lagi mengedarkan pengguna baru pada masa lalu, untuk mencapai "tidak masuk akal" yang sebenar Penyelenggaraan ".
5. Kesimpulan: Ketersediaan tinggi sebenarnya adalah sejenis "insurans"
Apabila sistem tenang, load balancing CLB kelihatan seperti mikrofon yang tidak diketahui, dan ada juga yang berpendapat bahawa ia meningkatkan jumlah pautan rangkaian.
Tetapi apabila tiba masanya untuk promosi besar, serangan, atau kegagalan fizikal perkakasan yang mendasari, seni bina ketersediaan tinggi CLB adalah "beg udara" yang dapat mengekalkan bonus akhir tahun dan perniagaan syarikat anda. Ia menukar kerumitan lapisan bawah dengan kesederhanaan permukaan, yang membolehkan pembangun fokus pada penyusunan logik perniagaan tanpa perlu bimbang tentang perincian fizikal lapisan bawah.
Dalam era "pengalaman pertama" ini, dengan lebih banyak rasa kagum terhadap ketersediaan yang tinggi, perniagaan dapat memiliki lebih banyak keyakinan dalam angin dan hujan.
