Pengimbangan Beban Sisi Klien dengan Ribbon
Integrasikan Ribbon untuk pengimbangan beban sisi klien merentas berbilang tika perkhidmatan.
Pengimbangan Beban Sisi Klien dengan Ribbon ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Apakah Pengimbangan Beban?
Dalam dunia perkhidmatan mikro, aplikasi selalunya mempunyai beberapa salinan (contoh) perkhidmatan yang sama yang sedang berjalan. Hal ini dilakukan untuk kebolehskalaan dan ketersediaan tinggi.
Pengimbangan beban ialah proses mengagihkan trafik rangkaian yang masuk kepada beberapa contoh tersebut. Proses ini memastikan tiada satu contoh perkhidmatan pun menerima beban berlebihan.
- Kebolehskalaan: Kendalikan lebih ramai pengguna dengan menambahkan lebih banyak contoh.
- Ketersediaan Tinggi: Jika satu contoh gagal, contoh lain boleh mengambil alih.
- Prestasi: Agihkan kerja secara sama rata untuk mengurangkan masa tindak balas.
Pengimbangan Beban pada Klien berbanding pada Pelayan
Terdapat dua jenis utama pengimbangan beban:
- Pengimbangan Beban pada Pelayan: Komponen khusus (seperti Nginx atau pengimbang beban perkakasan) berada di hadapan perkhidmatan anda. Klien menghantar permintaan kepada komponen ini, lalu komponen tersebut memajukannya kepada contoh perkhidmatan yang sesuai.
- Pengimbangan Beban pada Klien: Aplikasi klien itu sendiri bertanggungjawab mengetahui semua contoh perkhidmatan yang tersedia dan memilih satu untuk setiap permintaan. Di sinilah alat seperti Ribbon digunakan!
Ribbon: Pembantu pada Klien Anda
Ribbon ialah pengimbang beban pada klien yang bersepadu dengan lancar dengan aplikasi Spring Cloud. Alat ini membantu perkhidmatan klien anda memilih contoh yang betul bagi perkhidmatan sasaran.
Bagaimanakah Ribbon mengetahui contoh perkhidmatan? Ribbon bekerjasama dengan mekanisme penemuan perkhidmatan seperti Eureka. Eureka memberitahu Ribbon di mana perkhidmatan berada, manakala Ribbon menentukan yang mana untuk dipanggil.
Menambahkan Kebergantungan Pengimbangan Beban
Untuk membolehkan pengimbangan beban pada klien dalam aplikasi Spring Boot anda, biasanya anda menyertakan kebergantungan Spring Cloud LoadBalancer. Walaupun 'Ribbon' terdapat dalam tajuk pelajaran, Spring Cloud LoadBalancer ialah pengganti modennya dan berfungsi dengan cara yang serupa.
Tambahkan perkara ini pada pom.xml anda:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>RestTemplate dengan Pengimbangan Beban
Cara paling mudah untuk menggunakan pengimbangan beban pada klien ialah dengan RestTemplate Spring. Dengan hanya menambahkan anotasi @LoadBalanced pada bean RestTemplate, Spring mengkonfigurasikannya supaya menggunakan pengimbang beban.
Apabila membuat panggilan HTTP, anda akan menggunakan nama perkhidmatan logik (contohnya, my-service) dan bukannya alamat IP serta port tertentu. Pengimbang beban (Ribbon/Spring Cloud LoadBalancer) akan menterjemahkan nama ini kepada contoh sebenar.
Klien Memanggil Perkhidmatan (Kod)
Berikut ialah aplikasi klien Spring Boot yang ringkas dan menggunakan RestTemplate dengan pengimbangan beban untuk memanggil perkhidmatan lain yang bernama my-service. Untuk membolehkan perkara ini berfungsi, my-service mestilah didaftarkan dengan pelayan penemuan perkhidmatan seperti Eureka.
package com.coddykit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@RestController
public class MyClientApplication {
private final RestTemplate restTemplate;
// Inject the load-balanced RestTemplate
public MyClientApplication(@LoadBalanced RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public static void main(String[] args) {
SpringApplication.run(MyClientApplication.class, args);
}
// Define the load-balanced RestTemplate bean
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
// Endpoint to call 'my-service'
@GetMapping("/call-my-service")
public String callMyService() {
// Use the logical service ID 'my-service'
return restTemplate.getForObject("http://my-service/hello", String.class);
}
}Algoritma Pengimbangan Beban
Ribbon (dan Spring Cloud LoadBalancer) boleh menggunakan algoritma yang berbeza untuk menentukan contoh perkhidmatan yang hendak dipanggil. Antaranya ialah:
- Pusingan Robin: Mengagihkan permintaan secara berturutan kepada setiap contoh (contohnya, contoh 1, kemudian 2, kemudian 3, dan kembali kepada 1).
- Rawak: Memilih contoh rawak untuk setiap permintaan.
- Penapisan Ketersediaan: Mengabaikan contoh yang ditandakan sebagai tidak berfungsi atau tidak memberikan respons.
- Masa Tindak Balas Berwajaran: Mengutamakan contoh yang secara sejarahnya memberikan respons dengan lebih pantas.
Mengkonfigurasi Peraturan Pengimbangan Beban
Anda boleh mengkonfigurasi peraturan pengimbangan beban untuk perkhidmatan tertentu dalam application.yml atau application.properties. Contohnya, untuk menggunakan peraturan Pusingan Robin bagi my-service (menggunakan gaya konfigurasi Ribbon yang lebih lama):
my-service.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule
Walaupun sintaks khusus ini adalah untuk Ribbon versi lama, konsep mengkonfigurasi peraturan mengikut perkhidmatan adalah serupa dalam Spring Cloud LoadBalancer, yang biasanya dilakukan melalui konfigurasi tersuai atau sifat.
Faedah Pengimbangan Beban pada Klien
Pengimbangan beban pada klien menawarkan beberapa kelebihan dalam seni bina perkhidmatan mikro:
- Infrastruktur Lebih Ringkas: Tidak memerlukan komponen pengimbang beban perkakasan atau perisian yang berasingan.
- Komunikasi Terus: Klien berkomunikasi secara terus dengan contoh perkhidmatan, yang berpotensi mengurangkan kependaman.
- Penskalaan Dinamik: Mudah menyesuaikan diri dengan contoh perkhidmatan baharu yang mendaftar atau membatalkan pendaftaran melalui penemuan perkhidmatan.
- Kawalan Terperinci: Klien boleh melaksanakan logik pengimbangan beban tersuai atau menggunakan peraturan yang berbeza bagi setiap perkhidmatan.
Semakan Pantas tentang Pengimbangan Beban
Anda telah mempelajari pengimbangan beban pada klien. Mari uji pemahaman anda.
Imbas Kembali: Pengimbangan Beban pada Klien
Syabas! Anda telah meneroka pengimbangan beban pada klien dengan Ribbon (dan penggantinya, Spring Cloud LoadBalancer).
- Kita telah mempelajari bahawa pengimbangan beban mengagihkan trafik merentasi contoh perkhidmatan demi kebolehskalaan dan ketersediaan.
- Pengimbangan beban pada klien bermaksud klien itu sendiri memilih contoh yang hendak dipanggil, selalunya menggunakan nama perkhidmatan logik.
- Anotasi
@LoadBalancedpada beanRestTemplatepenting untuk membolehkan ciri ini dalam Spring Boot. - Pelbagai algoritma seperti Pusingan Robin boleh digunakan untuk mengagihkan permintaan.
Pendekatan ini menjadikan perkhidmatan mikro anda lebih teguh dan cekap!
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 24
- Pelajaran
- 93
Soalan Lazim
Adakah pelajaran “Pengimbangan Beban Sisi Klien dengan Ribbon” percuma?
Ya — teks penuh “Pengimbangan Beban Sisi Klien dengan Ribbon” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Pengimbangan Beban Sisi Klien dengan Ribbon”?
Integrasikan Ribbon untuk pengimbangan beban sisi klien merentas berbilang tika perkhidmatan. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 3.
Berapa lamakah pelajaran “Pengimbangan Beban Sisi Klien dengan Ribbon” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?
Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Melaksanakan Penemuan Perkhidmatan Eureka
- Pengimbangan Beban Sisi Klien dengan Ribbon
- Gerbang API dengan Spring Cloud Gateway