Jadual Kandungan[Sembunyi][Tunjukkan]
Ketersediaan aplikasi tidak pernah dipandang serius seperti hari ini apabila kami menggunakan apl untuk lebih daripada sekadar komunikasi, sama ada peribadi atau profesional dan apabila apl adalah perniagaan.
Aplikasi yang tidak sentiasa dalam talian, atau tidak stabil, kehilangan pengguna dan kaitannya, akhirnya menjadi usang. Ia berlaku dalam sekelip mata. Oleh kerana internet tidak pernah tidur dan beroperasi 24 jam sehari, 7 hari seminggu, idea yang sama mesti digunakan pada apl.
Kebolehskalaan adalah penting untuk melakukan ini dan memastikan ketersediaan aplikasi. Pengimbangan beban adalah salah satu komponen terpenting dalam memastikan ketersediaan. Ramai orang masih percaya bahawa pengimbangan beban boleh dicapai dengan skrip mudah.
Walau bagaimanapun, ini tidak berlaku. Ia sahaja menyediakan akses kepada program di seluruh dunia — pada bila-bila masa dan dari mana-mana peranti.
Dalam siaran ini, kami akan melihat secara mendalam tentang pengimbangan beban, algoritmanya dan cara ia berkaitan dengan perkhidmatan mikro, antara lain. Mari kita mulakan!
Apakah pengimbangan beban?
Apabila permintaan untuk tapak web atau aplikasi perniagaan semakin meningkat, satu pelayan tidak lama lagi tidak akan dapat mengendalikan keseluruhan beban. Organisasi mengagihkan beban kerja ke atas banyak pelayan untuk memenuhi permintaan. Kaedah ini, yang dikenali sebagai "pengimbangan beban," memastikan pelayan tunggal daripada dibebankan, yang boleh menyebabkannya menjadi perlahan, menggugurkan permintaan atau malah ranap.
Pengimbangan beban mengagihkan trafik rangkaian secara sama rata untuk mengelakkan kegagalan akibat beban sumber yang berlebihan. Aplikasi, tapak web, pangkalan data dan sumber komputer lain berprestasi lebih baik dan lebih tersedia menggunakan kaedah ini. Ia juga membantu dalam pemprosesan permintaan pengguna yang betul dan tepat pada masanya.
Dari perspektif pengguna, pengimbangan beban berfungsi sebagai perantara yang tidak kelihatan antara pelanggan dan koleksi pelayan, memastikan permintaan sambungan tidak digugurkan. Aplikasi, tapak web, pangkalan data dan perkhidmatan dalam talian kemungkinan besar akan runtuh jika permintaan menjadi terlalu besar tanpa pengimbangan beban.
Beratus-ratus ribu permintaan pengguna boleh dihantar ke satu tapak web dengan trafik tinggi pada masa yang sama. Berbilang pelayan diperlukan untuk mengisi halaman web dengan betul dengan kandungan yang diminta, seperti teks, imej, video dan penstriman audio. Pengimbangan beban biasanya digunakan dalam ladang pelayan tapak web dengan trafik tinggi, serta pelayan DNS, pangkalan data dan tapak Protokol Pemindahan Fail (FTP).
Jika pelayan tunggal terbeban, ini boleh berfungsi dengan teruk atau malah ranap. Pengimbang beban mengurangkan peluang masa henti dengan mengagihkan permintaan pengguna secara sama rata antara koleksi pelayan. Jika salah satu pelayan dalam kumpulan gagal, trafik dihalakan semula ke pelayan lain dalam kumpulan. Pengimbang beban secara automatik menambah pelayan baharu dalam proses pengedaran trafik apabila ia ditambahkan pada kumpulan pelayan.
Bagaimanakah pengimbangan beban berfungsi?
Ia berfungsi seperti berikut:
- Apabila pelanggan menerima permintaan, seperti melalui pelayar atau aplikasi, ia cuba menyambung dengan pelayan.
- Apabila pengimbang beban menerima permintaan, ia mengarahkannya ke salah satu pelayan dalam kumpulan pelayan berdasarkan corak yang ditetapkan oleh algoritma (atau ladang).
- Pelayan menerima permintaan sambungan dan menjawab klien melalui pengimbang beban.
- Apabila pengimbang beban menerima respons, ia sepadan dengan alamat IP klien dengan alamat IP pelayan yang dipilih. Selepas itu, jawapan dihantar dengan paket.
- Pemuatan SSL ialah proses menyahsulit data menggunakan protokol penyulitan Lapisan Soket Keselamatan supaya pelayan tidak perlu melakukannya.
- Proses diulang sehingga sesi tamat.
Kaedah Pengimbangan Beban
Untuk memilih pelayan dalam ladang pelayan yang menerima permintaan seterusnya, setiap teknik pengimbangan beban menggunakan satu set kriteria. Terdapat lima pendekatan biasa untuk pengimbangan beban:
- Round Robin: Ini ialah pendekatan lalai, dan ia berfungsi sama seperti kedengarannya. Pengimbang beban mengedarkan permintaan dalam corak berputar, bermula dengan pelayan pertama dalam kumpulan dan meneruskan ke bawah, di mana ia menunggu untuk dipanggil semula. Kaedah ini memastikan bahawa setiap pelayan mengendalikan bilangan sambungan yang hampir sama.
- Robin Bulat Berwajaran: Pendekatan ini memberikan setiap pelayan berat (atau keutamaan) yang secara amnya berkadar dengan kapasitinya. Lebih banyak permintaan pelayan diterima, lebih tinggi beratnya. Sebagai contoh, pelayan dengan nilai berat dua menerima permintaan dua kali lebih banyak daripada pelayan dengan nilai berat satu.
- Sesi Melekit: Pendekatan ini, juga dikenali sebagai ketekunan sesi, menghubungkan pelanggan dan pelayan tertentu untuk tempoh sesi. Untuk mewujudkan pautan, pengimbang beban menggunakan kuki atau alamat IP pengguna untuk mengenal pasti atribut pengguna. Setelah sambungan diwujudkan, permintaan pengguna diarahkan ke pelayan yang sama sehingga sesi tamat. Ini mengoptimumkan sumber rangkaian sambil meningkatkan pengalaman pengguna.
- Kurang sambungan: Strategi ini menganggap bahawa semua permintaan menghasilkan beban pelayan yang sama. Akibatnya, pelayan dengan bilangan permintaan terkecil menerima permintaan seterusnya.
- IP Hash: Algoritma ini menjana kunci cincang unik berdasarkan sumber klien dan pelayan dan alamat IP destinasi. Kunci digunakan untuk menghalakan permintaan dan membenarkan sambungan yang hilang dengan pelayan yang sama disambung semula.
Perkakasan Lwn. Pengimbang Beban Perisian
Pengimbang Beban Perkakasan
Perkakasan fizikal, seperti perkakas, membentuk pengimbang beban perkakasan. Ini mengarahkan trafik ke pelayan bergantung pada faktor seperti bilangan sambungan sedia ada, penggunaan pemproses dan prestasi pelayan. Pengimbang beban perkakasan mempunyai perisian tegar proprietari yang perlu diselenggara dan dikemas kini apabila versi baharu dan pembetulan keselamatan tersedia.
Pengimbang beban perkakasan selalunya memberikan prestasi dan kawalan yang lebih tinggi, serta julat keupayaan yang lebih luas seperti pengesahan Kerberos dan pecutan perkakasan SSL, tetapi ia memerlukan beberapa tahap kepakaran pengurusan dan penyelenggaraan. Oleh kerana pengimbang beban perkakasan kurang fleksibel dan berskala berbanding pengimbang beban perisian, terdapat kecenderungan untuk menyediakan pengimbang beban perkakasan secara berlebihan.
Pengimbang Beban Perisian
Pengimbang beban perisian biasanya lebih mudah disediakan daripada rakan perkakasan mereka. Ia juga lebih kos efektif dan boleh disesuaikan, dan ia berfungsi dengan baik dengan persekitaran pembangunan perisian. Kaedah perisian membolehkan anda menyesuaikan pengimbang beban mengikut keperluan sebenar persekitaran anda. Fleksibiliti yang meningkat mungkin datang dengan mengorbankan masa tambahan yang diluangkan untuk menyediakan pengimbang beban.
Pengimbang perisian memberikan anda kefleksibelan yang lebih besar untuk membuat pengubahsuaian dan kemas kini daripada perkakasan, yang mempunyai pendekatan kotak yang lebih tertutup. Mesin maya yang telah dibungkus boleh digunakan sebagai pengimbang beban perisian (VM). Mesin maya akan menjimatkan masa tetapan anda, tetapi mereka mungkin tidak mempunyai semua fungsi yang tersedia dalam rakan perkakasan mereka.
Pelaksanaan Pengimbangan Beban Mudah
Kami akan menggunakan perpustakaan Spring Cloud untuk membina aplikasi yang menyambung ke apl lain dengan cara yang seimbang. Semasa memproses permintaan perkhidmatan jauh, kami boleh membina pengimbangan beban dengan mudah menggunakan apa sahaja teknik yang kami suka. Pertimbangkan kod berikut sebagai contoh. Kami akan bermula dengan aplikasi pelayan asas.
Pelayan hanya akan mempunyai satu titik akhir HTTP dan akan dikendalikan dalam beberapa keadaan. Kemudian kami akan membina apl pelanggan yang menggunakan Pengimbang Beban untuk mengedarkan permintaan merentas beberapa tika pelayan.
Server
Kita mulakan dengan asas Boot musim bunga aplikasi untuk pelayan contoh kami:
Untuk bermula, kami menyuntik pembolehubah boleh disesuaikan yang dipanggil instance_ID. Ini membantu kami membezakan antara banyak keadaan yang sedang beroperasi. Selepas itu, kami mencipta satu titik akhir HTTP GET yang mengembalikan mesej dan ID contoh.
Contoh lalai dengan ID 1 akan beroperasi pada port 8080. Kami hanya perlu menambah beberapa parameter program untuk melancarkan contoh kedua:
Pelanggan
Sekarang mari kita lihat kod pelanggan. Di sinilah Pengimbang Beban masuk, jadi mari kita mulakan dengan memasukkannya ke dalam aplikasi kita:
Selepas itu, kami membangunkan pelaksanaan ServiceInstanceListSupplier. Ini adalah salah satu antara muka yang paling penting dalam Pengimbang Beban. Ia menentukan cara kami mencari contoh perkhidmatan yang boleh diakses.
Kami akan mengekod keras dua contoh berasingan pelayan contoh kami dalam aplikasi sampel kami. Mereka berjalan pada sistem yang sama tetapi menggunakan port berasingan:
Buat kelas LoadBalancerConfiguration sekarang:
Kelas ini hanya mempunyai satu tujuan: ia mencipta pembina WebClient seimbang beban untuk membuat permintaan jauh. Anotasi kami menggunakan nama rekaan untuk perkhidmatan tersebut.
Ini disebabkan oleh fakta bahawa kami berkemungkinan besar tidak mengetahui nama hos dan port yang tepat untuk menjalankan contoh lebih awal daripada masa. Akibatnya, kami menggunakan nama rekaan sebagai pemegang tempat dan rangka kerja akan menggantikan maklumat sebenar apabila ia memilih tika yang sedang berjalan.
Seterusnya, mari kita buat kelas Konfigurasi yang akan digunakan untuk membuat instantiate bekalan contoh perkhidmatan kami. Ambil perhatian bahawa kami menggunakan alias yang sama seperti sebelum ini:
Kami kini boleh membina aplikasi pelanggan sebenar. Mari hantar 10 pertanyaan ke pelayan sampel menggunakan kacang WebClient dari awal:
Kita dapat melihat daripada output bahawa kita sedang mengimbangi beban antara dua kejadian berasingan:
Pengimbangan Beban dalam Microservices
Seni bina perkhidmatan mikro digunakan oleh beberapa syarikat, seperti Netflix dan Amazon, untuk membangunkan aplikasi perniagaan sebagai satu set perkhidmatan yang disambungkan secara longgar. Penyampaian skala besar dan berterusan untuk aplikasi rumit hanyalah dua sebab untuk berpindah ke seni bina yang diedarkan dan bersambung longgar ini.
Pasukan perusahaan ini telah melaksanakan strategi Agile dan DevOps untuk menghasilkan apl dengan lebih pantas dan dengan kadar kegagalan yang lebih rendah daripada kaedah tradisional. Walau bagaimanapun, anda mesti mencapai keseimbangan antara kerumitan seni bina yang diedarkan dan permintaan aplikasi, keperluan skala dan had masa ke pasaran.
Selama bertahun-tahun, pengawal penghantaran aplikasi (ADC) sangat penting untuk memenuhi keperluan peringkat perkhidmatan untuk aplikasi korporat yang dihoskan di premis atau di awan. Pelanggan yang terlibat dengan aplikasi berasaskan perkhidmatan mikro tidak perlu mengetahui tentang keadaan yang menyediakannya untuk mengembangkan pelanggan dan perkhidmatan mikro secara bebas.
Ini adalah tepat penyahgandingan yang disediakan oleh proksi terbalik atau pengimbang beban. Sekali lagi, pengimbangan beban ialah penyelesaian untuk memastikan perkhidmatan mikro boleh mengendalikan permintaan, keselamatan dan ketersediaan.
Apabila anda menggabungkan pengimbangan beban Utara-Selatan tradisional antara aplikasi berasaskan pelanggan dan perkhidmatan mikro dengan penempatan Timur-Barat untuk kebolehskalaan mendatar, anda mendapat rangsangan yang besar. Objektifnya adalah untuk mengekalkan persekitaran yang selamat dan terkawal yang diperlukan oleh IT tanpa mengorbankan ketangkasan pembangunan atau Automasi DevOps keperluan.
Faedah-faedah
Pengimbangan beban menyediakan pelbagai faedah dengan meningkatkan penggunaan sumber, penghantaran data dan masa tindak balas untuk tapak web dan apl trafik tinggi, serta pangkalan data yang mendapat sejumlah besar pertanyaan. Pengimbangan beban memastikan permintaan pengguna dipenuhi dengan cepat dan betul dalam senario trafik tinggi.
Mereka menjimatkan pengguna daripada menangani program dan sumber yang lembap. Pengimbangan beban juga membantu mengelakkan masa henti dan memudahkan keselamatan, mengurangkan risiko kehilangan produktiviti dan pendapatan untuk syarikat anda.
- Pengimbangan beban menyediakan fleksibiliti untuk menambah dan mengalih keluar pelayan mengikut kehendak permintaan, selain menguruskan trafik ke kecekapan optimum. Oleh kerana trafik dialihkan ke pelayan lain semasa penyelenggaraan, ia juga boleh dilakukan untuk menjalankan penyelenggaraan pelayan tanpa mengganggu pengguna.
- Pengimbangan beban menyediakan lebihan terbina dalam dengan membahagikan trafik antara satu set pelayan. Anda boleh segera mengalihkan beban ke pelayan lain jika ia gagal, meminimumkan kesan kepada pengguna.
- Jika penggunaan aplikasi atau tapak web berkembang, peningkatan trafik mungkin merendahkan prestasinya jika tidak dikendalikan dengan berkesan. Dengan pengimbangan beban, anda boleh menambah pelayan sebenar atau maya untuk memenuhi permintaan tanpa mengganggu perkhidmatan. Pengimbang beban mengenal pasti pelayan baharu apabila ia datang dalam talian dan dengan mudah memasukkannya ke dalam operasi. Kaedah ini adalah lebih baik untuk memindahkan tapak web daripada pelayan yang terlalu terbeban kepada yang baharu, yang selalunya melibatkan beberapa masa henti.
Kesimpulan
Pengimbangan beban ialah komponen penting bagi sistem kontemporari, tahan kerosakan. Kami hanya boleh membina apl yang mengedarkan permintaan kepada berbilang contoh perkhidmatan menggunakan pelbagai pendekatan pengimbangan beban. Perniagaan mesti menyokong sistem IT yang rumit untuk menyediakan aplikasi dengan selamat.
Konfigurasi perkhidmatan mikro merentas domain, penggunaan dan penyelenggaraan mungkin terdedah kepada ralat, mahal dan memakan masa. IT harus menggunakan amalan dan teknologi terbaik automasi, keterlihatan, analitik dan orkestrasi yang serasi dengan proses tangkas dan DevOps mereka untuk memudahkan persediaan dan penyelenggaraan perkhidmatan mikro ini.
Sila tinggalkan balasan anda