Berbagi teknologi

Pertanyaan yang sering diajukan dalam wawancara springcloud

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:

1. Apa saja komponen inti Spring Cloud?

Spring Cloud berisi banyak komponen inti, yang umum adalah:

  • Konfigurasi Spring Cloud: Alat manajemen konfigurasi terdistribusi yang mendukung manajemen terpusat dan penyegaran dinamis file konfigurasi.
  • Awan Musim Semi Netflix: Termasuk Eureka (pendaftaran dan penemuan layanan), Ribbon (penyeimbangan beban klien), Hystrix (pemutus sirkuit), Zuul (gateway API), dll.
  • Gerbang Awan Musim Semi: Gerbang API, menggantikan Zuul, menyediakan fungsi perutean dan pemfilteran yang lebih efisien.
  • Detektif Awan Musim Semi: Alat penelusuran terdistribusi, terintegrasi dengan Zipkin atau Jaeger.
  • Aliran Awan Musim Semi: Kerangka kerja layanan mikro berbasis pesan yang mendukung berbagai middleware pesan (seperti Kafka, RabbitMQ).
  • Bus Awan Musim Semi: Bus peristiwa, biasanya digunakan untuk menyegarkan konfigurasi secara dinamis.
  • Awan Musim Semi OpenFeign: Klien HTTP deklaratif yang menyederhanakan panggilan HTTP.

2. Apa yang dimaksud dengan registrasi dan penemuan layanan? Bagaimana Spring Cloud diimplementasikan?

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

  1. Pendaftaran layanan: Mesin virtual layanan mendaftarkan informasinya sendiri (seperti nama layanan, alamat mesin virtual, dll.) dengan Server Eureka saat memulai.
  2. penemuan layanan: Saat klien memanggil suatu layanan, ia menanyakan Server Eureka untuk daftar contoh layanan yang perlu dipanggil.

Kode sampel

  • Konfigurasikan Server Eureka:
 

kode salinan java

@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }

  • Konfigurasikan Klien Eureka:
 

kode salinan java

@EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }

3. Apa itu penyeimbangan beban? Bagaimana Spring Cloud diimplementasikan?

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

  • Menyediakan serangkaian strategi penyeimbangan beban (seperti round-robin, acak, berbobot, dll.).
  • Mendukung penyegaran dinamis daftar layanan.

Kode sampel

 

kode salinan java

@LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); }

4. Apa yang dimaksud dengan sekring? Bagaimana Spring Cloud diimplementasikan?

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

  • Pantau dan isolasi panggilan layanan.
  • Menyediakan mekanisme mundur (Fallback).
  • Menyediakan pemantauan indikator waktu nyata.

Kode sampel

 

kode salinan java

@HystrixCommand(fallbackMethod = "fallbackMethod") public String someMethod() { // 可能会失败的服务调用 } public String fallbackMethod() { return "Fallback response"; }

5. Apa yang dimaksud dengan gerbang API? Bagaimana Spring Cloud diimplementasikan?

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:

  • Bahasa Zuul: Solusi gateway API yang disediakan oleh Netflix, biasa digunakan di ekosistem Spring Cloud Netflix.
  • Gerbang Awan Musim Semi: Gerbang API yang dikembangkan oleh tim Spring memiliki kinerja lebih tinggi dan fungsi lebih kuat, dan biasanya digunakan untuk menggantikan Zuul.

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

6. Apa itu Konfigurasi Cloud Musim Semi? Bagaimana cara kerjanya?

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

  1. Penyimpanan konfigurasi: File konfigurasi disimpan dalam repositori terpusat (misalnya Git, SVN, sistem file).
  2. Konfigurasikan server: Spring Cloud Config Server membaca file konfigurasi dari repositori terpusat dan memberikannya kepada klien.
  3. Konfigurasikan klien: Klien Spring Cloud Config meminta file konfigurasi dari Config Server saat startup, memuat dan menerapkan konfigurasi.

Kode sampel

  • Konfigurasi server:
 

kode salinan java

@EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }

  • konfigurasikan klien (bootstrap.yml):
 

yamlSalin kode

spring: application: name: some-service cloud: config: uri: http://localhost:8888

7. Apa yang dimaksud dengan penelusuran terdistribusi? Bagaimana Spring Cloud diimplementasikan?

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

  • Secara otomatis menambahkan ID pelacakan unik dan ID rentang ke aplikasi Anda.
  • Menyediakan korelasi data log dan jejak.
  • Integrasikan Zipkin atau Jaeger untuk pengumpulan dan tampilan data pelacakan terpusat.

Kode sampel

 

xmlSalin kode