2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Spring Cloud adalah solusi arsitektur layanan mikro berdasarkan Spring Boot, yang mencakup banyak alat dan kerangka kerja untuk membangun dan mengelola layanan mikro. Dalam wawancara, pertanyaan terkait Spring Cloud biasanya mencakup konsep inti, komponen, pola umum, dan solusi. Berikut beberapa pertanyaan umum dan jawabannya selama wawancara Spring Cloud:
Spring Cloud berisi banyak komponen inti, yang umum adalah:
Registrasi dan penemuan layanan adalah konsep kunci dalam arsitektur layanan mikro, yang mengacu pada registrasi dinamis dan penemuan instans layanan. Pusat pendaftaran layanan bertanggung jawab untuk memelihara daftar instans layanan. Setiap layanan mikro akan mendaftarkan alamat dan metadatanya ke pusat pendaftaran layanan saat dimulai.
Komponen pendaftaran dan penemuan layanan yang umum digunakan di Spring Cloud adalah Netflix Eureka.
Pendaftaran layanan dan proses penemuan:
Kode sampel:
kode salinan java
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
kode salinan java
@EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
Penyeimbangan beban adalah teknologi yang mendistribusikan permintaan ke beberapa contoh layanan untuk meningkatkan ketersediaan dan kinerja sistem. Spring Cloud menyediakan solusi penyeimbangan beban sisi klien, terutama diimplementasikan melalui Ribbon.
Fitur utama Ribbon:
Kode sampel:
kode salinan java
@LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); }
Pemutus sirkuit adalah mekanisme perlindungan yang digunakan untuk mencegah kegagalan berjenjang antar layanan. Ketika mendeteksi bahwa instans layanan tidak tersedia, ia akan langsung mengembalikan respons kesalahan untuk menghindari terus memanggil instans yang tidak tersedia.
Spring Cloud menggunakan Netflix Hystrix untuk mengimplementasikan pemutus sirkuit.
Fitur utama Hystrix:
Kode sampel:
kode salinan java
@HystrixCommand(fallbackMethod = "fallbackMethod") public String someMethod() { // 可能会失败的服务调用 } public String fallbackMethod() { return "Fallback response"; }
Gateway API adalah komponen penting dalam arsitektur layanan mikro. Ini digunakan untuk mengelola dan merutekan permintaan klien secara seragam, dan menyediakan otentikasi, otentikasi, pembatasan saat ini, logging, dan fungsi lainnya.
Spring Cloud menyediakan dua solusi gateway API:
Kode sampel Spring Cloud Gateway:
yamlSalin kode
spring: cloud: gateway: routes: - id: some_route uri: http://some-service predicates: - Path=/some-path/** filters: - StripPrefix=1
Spring Cloud Config adalah alat manajemen konfigurasi terdistribusi yang digunakan untuk mengelola file konfigurasi beberapa layanan mikro secara terpusat dan mendukung penyegaran konfigurasi secara dinamis.
prinsip bekerja:
Kode sampel:
kode salinan java
@EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
bootstrap.yml
):yamlSalin kode
spring: application: name: some-service cloud: config: uri: http://localhost:8888
Pelacakan terdistribusi digunakan untuk melacak tautan permintaan di berbagai layanan, membantu pengembang memantau dan men-debug sistem terdistribusi.
Spring Cloud Sleuth menyediakan solusi penelusuran terdistribusi yang mengintegrasikan Zipkin atau Jaeger.
Fitur utama Spring Cloud Sleuth:
Kode sampel:
xmlSalin kode