2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Spring Cloud는 Spring Boot 기반의 마이크로서비스 아키텍처 솔루션으로, 마이크로서비스 구축 및 관리를 위한 다양한 도구와 프레임워크가 포함되어 있습니다. 인터뷰에서 Spring Cloud와 관련된 질문은 일반적으로 핵심 개념, 구성 요소, 공통 패턴 및 솔루션을 다룹니다. Spring Cloud 인터뷰 중 자주 묻는 질문과 답변은 다음과 같습니다.
Spring Cloud에는 많은 핵심 구성 요소가 포함되어 있으며 일반적인 구성 요소는 다음과 같습니다.
서비스 등록 및 검색은 서비스 인스턴스의 동적 등록 및 검색을 의미하는 마이크로서비스 아키텍처의 핵심 개념입니다. 서비스 등록 센터는 서비스 인스턴스 목록을 유지 관리하는 역할을 담당합니다. 각 마이크로서비스는 시작 시 해당 주소와 메타데이터를 서비스 등록 센터에 등록합니다.
Spring Cloud에서 일반적으로 사용되는 서비스 등록 및 검색 구성 요소는 Netflix Eureka입니다.
서비스 등록 및 검색 프로세스:
샘플 코드:
자바 복사 코드
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
자바 복사 코드
@EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
로드 밸런싱은 요청을 여러 서비스 인스턴스에 분산하여 시스템 가용성과 성능을 향상시키는 기술입니다. Spring Cloud는 주로 리본을 통해 구현되는 클라이언트 측 로드 밸런싱 솔루션을 제공합니다.
리본의 주요 기능:
샘플 코드:
자바 복사 코드
@LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); }
회로 차단기는 서비스 간의 계단식 오류를 방지하는 데 사용되는 보호 메커니즘입니다. 서비스 인스턴스를 사용할 수 없음을 감지하면 사용할 수 없는 인스턴스를 계속 호출하지 않도록 오류 응답을 직접 반환합니다.
Spring Cloud는 Netflix Hystrix를 사용하여 회로 차단기를 구현합니다.
Hystrix의 주요 기능:
샘플 코드:
자바 복사 코드
@HystrixCommand(fallbackMethod = "fallbackMethod") public String someMethod() { // 可能会失败的服务调用 } public String fallbackMethod() { return "Fallback response"; }
API 게이트웨이는 마이크로서비스 아키텍처의 중요한 구성 요소로 클라이언트 요청을 균일하게 관리하고 라우팅하는 데 사용되며 인증, 전류 제한, 로깅 및 기타 기능을 제공합니다.
Spring Cloud는 두 가지 API 게이트웨이 솔루션을 제공합니다.
Spring Cloud 게이트웨이 샘플 코드:
yaml코드 복사
spring: cloud: gateway: routes: - id: some_route uri: http://some-service predicates: - Path=/some-path/** filters: - StripPrefix=1
Spring Cloud Config는 여러 마이크로서비스의 구성 파일을 중앙에서 관리하고 동적으로 구성 새로 고침을 지원하는 분산 구성 관리 도구입니다.
작동 원리:
샘플 코드:
자바 복사 코드
@EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
bootstrap.yml
):yaml코드 복사
spring: application: name: some-service cloud: config: uri: http://localhost:8888
분산 추적은 여러 서비스에서 요청 링크를 추적하는 데 사용되므로 개발자가 분산 시스템을 모니터링하고 디버그하는 데 도움이 됩니다.
Spring Cloud Sleuth는 Zipkin 또는 Jaeger를 통합하는 분산 추적 솔루션을 제공합니다.
스프링 클라우드 슬루스의 주요 기능:
샘플 코드:
xml코드 복사