Teknologian jakaminen

Springcloud-haastatteluissa usein kysyttyjä kysymyksiä

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Spring Cloud on Spring Bootiin perustuva mikropalveluarkkitehtuuriratkaisu, joka sisältää monia työkaluja ja kehyksiä mikropalvelujen rakentamiseen ja hallintaan. Haastatteluissa Spring Cloudiin liittyvät kysymykset kattavat yleensä sen ydinkonseptit, komponentit, yleiset mallit ja ratkaisut. Tässä on joitain usein kysyttyjä kysymyksiä ja vastauksia niihin Spring Cloud -haastatteluissa:

1. Mitkä ovat Spring Cloudin ydinkomponentit?

Spring Cloud sisältää monia ydinkomponentteja, joista yleisimmät ovat:

  • Spring Cloud Config: Hajautettu kokoonpanonhallintatyökalu, joka tukee keskitettyä hallintaa ja konfiguraatiotiedostojen dynaamista päivitystä.
  • Spring Cloud Netflix: Mukaan lukien Eureka (palvelun rekisteröinti ja etsintä), Ribbon (asiakaskuormituksen tasapainotus), Hystrix (katkaisija), Zuul (API-yhdyskäytävä) jne.
  • Spring Cloud Gateway: API-yhdyskäytävä, joka korvaa Zuulin, tarjoaa tehokkaampia reititys- ja suodatustoimintoja.
  • Kevätpilvi Sleuth: Jaettu jäljitystyökalu, integroitu Zipkiniin tai Jaegeriin.
  • Kevään pilvivirta: Viestipohjainen mikropalvelukehys, joka tukee useita viestiväliohjelmistoja (kuten Kafka, RabbitMQ).
  • Kevään pilvibussi: Tapahtumaväylä, jota käytetään yleensä konfiguroinnin dynaamiseen päivittämiseen.
  • Kevätpilvi OpenFeign: Ilmoittava HTTP-asiakas, joka yksinkertaistaa HTTP-kutsuja.

2. Mitä on palvelun rekisteröinti ja löytäminen? Miten Spring Cloud toteutetaan?

Palvelun rekisteröinti ja etsintä on mikropalveluarkkitehtuurin avainkäsite, joka viittaa palveluinstanssien dynaamiseen rekisteröintiin ja etsimiseen. Palvelurekisteröintikeskus vastaa palveluinstanssien luettelon ylläpidosta. Jokainen mikropalvelu rekisteröi osoitteensa ja metatietonsa palvelurekisteröintikeskukseen käynnistyessään.

Spring Cloudin yleisesti käytetty palvelun rekisteröinti- ja hakukomponentti on Netflix Eureka.

Palvelun rekisteröinti- ja hakuprosessi

  1. Palvelun rekisteröinti: Palveluinstanssi rekisteröi omat tietonsa (kuten palvelun nimen, ilmentymän osoitteen jne.) Eureka Serveriin käynnistyessään.
  2. palvelun löytäminen: Kun asiakas soittaa palveluun, se kysyy Eureka Serveriltä luetteloa palveluesiintymistä, jotka on kutsuttava.

Esimerkkikoodi

  • Määritä Eureka-palvelin:
 

java kopiointikoodi

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

  • Määritä Eureka Client:
 

java kopiointikoodi

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

3. Mitä kuormituksen tasapainottaminen on? Miten Spring Cloud toteutetaan?

Kuormituksen tasapainotus on tekniikka, joka jakaa pyynnöt useiden palveluinstanssien kesken järjestelmän saatavuuden ja suorituskyvyn parantamiseksi. Spring Cloud tarjoaa asiakaspuolen kuormantasausratkaisun, joka toteutetaan pääasiassa Ribbonin kautta.

Nauhan pääominaisuudet

  • Tarjoaa joukon kuormituksen tasapainotusstrategioita (kuten round-robin, satunnainen, painotettu jne.).
  • Tukee palveluluettelon dynaamista päivitystä.

Esimerkkikoodi

 

java kopiointikoodi

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

4. Mikä on sulake? Miten Spring Cloud toteutetaan?

Katkaisijat ovat suojamekanismi, jota käytetään estämään kaskadihäiriöt palvelujen välillä. Kun se havaitsee, että palveluesiintymä ei ole käytettävissä, se palauttaa suoraan virhevastauksen välttääkseen ei-käytettävissä olevan ilmentymän kutsumisen jatkamisen.

Spring Cloud käyttää Netflix Hystrixiä katkaisijoiden toteuttamiseen.

Hystrixin tärkeimmät ominaisuudet

  • Valvo ja eristä huoltopuhelut.
  • Tarjoa varamekanismi (Fallback).
  • Tarjoa reaaliaikainen indikaattoriseuranta.

Esimerkkikoodi

 

java kopiointikoodi

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

5. Mikä on API-yhdyskäytävä? Miten Spring Cloud toteutetaan?

API-yhdyskäytävä on tärkeä komponentti mikropalveluarkkitehtuurissa. Sitä käytetään asiakaspyyntöjen yhtenäiseen hallintaan ja reitittämiseen, ja se tarjoaa autentikointia, todennusta, virranrajoitusta, kirjaamista ja muita toimintoja.

Spring Cloud tarjoaa kaksi API-yhdyskäytäväratkaisua:

  • Zuul: Netflixin tarjoama API-yhdyskäytäväratkaisu, jota käytetään yleisesti Spring Cloud Netflix -ekosysteemissä.
  • Spring Cloud Gateway: Spring-tiimin kehittämässä API-yhdyskäytävässä on parempi suorituskyky ja tehokkaammat toiminnot, ja sitä käytetään yleensä korvaamaan Zuul.

Spring Cloud Gateway -esimerkkikoodi

 

yaml kopioi koodi

spring: cloud: gateway: routes: - id: some_route uri: http://some-service predicates: - Path=/some-path/** filters: - StripPrefix=1

6. Mikä Spring Cloud Config on? Kuinka se toimii?

Spring Cloud Config on hajautettu määritysten hallintatyökalu, jota käytetään useiden mikropalvelujen konfigurointitiedostojen keskitettyyn hallintaan ja joka tukee dynaamisesti päivittyviä määrityksiä.

toimintaperiaate

  1. Määritysten tallennus: Asetustiedostot tallennetaan keskitettyyn arkistoon (esim. Git, SVN, tiedostojärjestelmä).
  2. Määritä palvelin: Spring Cloud Config Server lukee määritystiedostoja keskitetystä arkistosta ja toimittaa ne asiakkaille.
  3. Määritä asiakas: Spring Cloud Config Client pyytää konfiguraatiotiedostoa Config Serveriltä käynnistyksen yhteydessä, lataa ja ottaa asetukset käyttöön.

Esimerkkikoodi

  • Määritä palvelin:
 

java kopiointikoodi

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

  • määritä asiakas (bootstrap.yml):
 

yaml kopioi koodi

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

7. Mitä on hajautettu jäljitys? Miten Spring Cloud toteutetaan?

Hajautettua jäljitystä käytetään pyyntölinkkien seuraamiseen useissa palveluissa, mikä auttaa kehittäjiä valvomaan ja korjaamaan hajautettuja järjestelmiä.

Spring Cloud Sleuth tarjoaa hajautetun jäljitysratkaisun, joka integroi Zipkinin tai Jaegerin.

Spring Cloud Sleuthin tärkeimmät ominaisuudet

  • Lisää automaattisesti yksilölliset seurantatunnukset ja span tunnukset sovellukseesi.
  • Tarjoaa loki- ja jäljitystietojen korrelaation.
  • Integroi Zipkin tai Jaeger keskitettyä seurantatietojen keräämistä ja näyttöä varten.

Esimerkkikoodi

 

xmlKopioi koodi