>  기사  >  Java  >  9가지 마이크로서비스 인터뷰 질문 중 몇 개에 답할 수 있나요?

9가지 마이크로서비스 인터뷰 질문 중 몇 개에 답할 수 있나요?

Java后端技术全栈
Java后端技术全栈앞으로
2023-08-22 15:46:381500검색

현재 마이크로서비스는 Java 개발자에게 필요한 기술 중 하나입니다. 귀하가 업무에 실제로 마이크로서비스 아키텍처를 사용하는지 여부에 관계없이 면접관은 분명히 귀하에게 질문할 것이므로 Tian 형제는 귀하를 위해 마이크로서비스 인터뷰 질문 목록을 정리했습니다.

더 이상 고민하지 않고 바로 본론으로 들어가겠습니다.

1. 마이크로서비스란 무엇인가요?

단일 경량 서비스는 일반적으로 독립적인 마이크로서비스입니다. 예를 들어, 로그인 시스템은 사용자 로그인 기능의 구현에만 중점을 둡니다. 기본적으로 제공되며 독립적으로 실행할 수 있습니다. 마이크로서비스 아키텍처 시스템은 비즈니스에 따라 서비스 단위 모듈을 분할하고 단일 시스템의 단점을 해결하며 점점 더 복잡해지는 비즈니스 요구를 충족하는 분산 시스템입니다.

Martin Fowler: 현재 마이크로서비스 산업에 대한 통일된 표준 정의는 없습니다. 그러나 일반적으로 마이크로서비스 아키텍처는 단일 애플리케이션을 작은 서비스 세트로 나누는 것을 옹호하는 아키텍처 패턴 또는 아키텍처 스타일입니다. 각 서비스는 고유한 독립적인 프로세스로 실행되며, 서비스는 서로 협력하고 조정하여 사용자에게 궁극적인 가치를 제공합니다. 서비스 간 경량 통신을 사용합니다. 각 서비스는 특정 비즈니스를 중심으로 구축되었으며 프로덕션 환경에 독립적으로 배포될 수 있습니다. 또한, 통합되고 중앙화된 서비스 관리 메커니즘은 가능한 한 피해야 합니다.

일반인의 용어로:

마이크로서비스는 단일 책임을 갖는 독립적인 서비스 애플리케이션입니다. intellij idea 도구에는 maven을 사용하여 개발된 독립적인 모듈이 있습니다. 구체적으로는 단일 전문 비즈니스 로직을 처리하기 위해 springboot를 사용하여 개발된 작은 모듈입니다.

마이크로서비스는 서비스의 크기를 강조하고, 특정 지점에 초점을 맞추고, 구체적으로 특정 문제를 해결/해당 서비스 애플리케이션을 구현하는 것을 아이디어상 모듈이라고 볼 수 있습니다.

예를 들어 병원에 가면 치아가 불편하다고 느끼면 치과에 갑니다. 머리 아프면 뇌과로 가세요. 각 부서는 마이크로서비스이고 각 기능은 서비스입니다.

2. 마이크로서비스는 어떻게 독립적으로 통신하나요?

동기 통신: RPC 원격 프로시저 호출을 통한 dobbo, REST 인터페이스 json 호출을 통한 springcloud 등 비동기: RabbitMq, ActiveM, Kafka 등의 메시지 대기열

3. SpringCloud와 Dubbo의 차이점은 무엇인가요?

  • 우선, 모두 분산 관리 프레임워크입니다.

  • dubbo는 바이너리 전송으로 대역폭을 덜 차지합니다. SpringCloud는 약간 더 많은 대역폭을 갖는 http 전송을 사용합니다. 동시에 http 프로토콜을 사용하면 일반적으로 JSON 메시지를 사용하므로 더 많은 대역폭을 소비합니다.

  • Dubbo는 개발하기 어렵고, Dubbo가 사용하는 jar 패키지에는 많은 문제가 있습니다. 대형 프로젝트는 해결할 수 없습니다. SpringCloud의 타사 상속은 한 번의 클릭으로 생성되고 자연스럽게 통합될 수 있습니다.

  • SpringCloud 인터페이스 프로토콜 계약은 상대적으로 느슨합니다.
    무질서한 인터페이스 업그레이드를 제한하려면 강력한 관리 조치가 필요합니다

    .

  • 가장 큰 차이점:
    Spring Cloud는 Dubbo의 RPC 통신을 포기하고 HTTP 기반의 REST 방식을 채택합니다.

  • 엄밀히 말하면 이 두 가지 방법에는 각각의 장점과 단점이 있습니다. 후자는 서비스 호출 성능을 어느 정도 희생하지만 위에서 언급한 기본 RPC로 인해 발생하는 문제도 방지합니다. 게다가 REST는 RPC보다 유연하며, 서비스 제공자와 호출자는 계약에만 의존하며, 코드 수준에서 강한 종속성이 없습니다. 이는 빠른 진화를 강조하는 마이크로서비스 환경에 더 적합합니다.
9가지 마이크로서비스 인터뷰 질문 중 몇 개에 답할 수 있나요?
SpringCloud 및 Dubbo.png

4. SpringBoot와 SpringCloud의 관계?

  • SpringBoot: 단일 개별 마이크로서비스를 빠르고 편리하게 개발하는 데 중점(마이크로에 중점) SpringCloud: 전반적인 마이크로서비스 조정 및 거버넌스 프레임워크에 중점을 두고 SpringBoot에서 개발한 개별 마이크로서비스를 결합 및 관리합니다. 매크로);

  • SpringBoot는 SpringCloud 없이도 독립적으로 사용할 수 있지만, SpringCloud는 종속 관계인 SpringBoot 없이는 사용할 수 없습니다.

5. 차단기란? 서비스 다운그레이드란 무엇인가요?

  • 서비스 차단기의 기능은 우리 집의 퓨즈와 유사합니다. 서비스가 불가능하거나 응답 시간이 초과되면 전체 시스템의 사태를 방지하기 위해 서비스 호출이 일시적으로 중단됩니다.

  • 서비스 저하는 전체 시스템의 부하 상황을 기준으로 부하가 상대적으로 높은 특정 상황의 경우 특정 기능(비즈니스 시나리오)이 과부하되거나 느리게 응답하는 것을 방지하기 위해 내부적으로 일시적으로 요청을 포기합니다. 일부 비핵심 인터페이스 및 데이터를 포함하고 미리 준비된 폴백 오류 처리 정보를 직접 반환합니다. 이런 방식으로 손실이 있는 서비스를 제공하더라도 전체 시스템의 안정성과 가용성이 보장됩니다.

6. 마이크로서비스의 장점과 단점은 무엇인가요? 프로젝트를 진행하면서 겪었던 어려움에 대해 알려주세요.

  • 장점: 느슨한 결합, 단일 비즈니스 기능에 중점을 두고 개발 언어와 무관하며 팀 규모가 줄어듭니다. 개발 중에는 비즈니스에 대해 많이 알 필요가 없으며 편리하고 중앙 집중화된 현재 기능에만 집중하고 기능은 작고 세련됩니다. 마이크로서비스의 한 기능이 손상되더라도 다른 기능에 큰 영향을 미치지 않으며 문제를 빠르게 찾을 수 있습니다. 마이크로서비스는 현재 비즈니스 로직 코드에만 중점을 두고 HTML, CSS 또는 기타 인터페이스와 혼합되지 않습니다. 기술과 유연하게 조화를 이룰 수 있으며 독립적인 것이 더 편안합니다.

  • 단점: 서비스 수가 증가함에 따라 관리가 복잡하고 배포가 복잡하며 서버 요구 사항이 증가하고 서비스 통신 및 통화 압력이 증가하며 운영 및 유지 관리 엔지니어의 압력이 증가하고 인적 자원이 증가하며 시스템 종속성이 증가하고 데이터 일관성 향상, 성능 모니터링.

7. 유레카와 사육사의 차이점은 무엇인가요?

zookeeper는 CP 원칙, 강한 일관성 및 파티션 내결함성을 갖추고 있습니다. 유레카는 가용성 및 파티션 허용 오차라는 AP 원칙입니다. ZooKeeper 마스터 노드에 장애가 발생하면 ZooKeeper는 나머지 노드에서 마스터 노드를 다시 선택하는데 시간이 너무 오래 걸리므로 결국 복원할 수는 있지만 마스터 노드를 선택하는 동안에는 서비스를 사용할 수 없게 됩니다. 유레카의 모든 노드는 동일합니다. 한 노드가 중단되더라도 다른 노드는 여전히 정상적인 서비스를 유지합니다.

8. 마이크로서비스에 대해 어떤 기술 스택을 알고 있나요? 하나 또는 두 개를 나열하십시오.Ar chaius, Ali's Dlamond 등

서비스 등록 및 검색Eurka, Consul, Zookeeper, etc.Service callRest(서비스 통신), RPC(Dubbo), GRpc
서비스 회로 차단기 Hystrix, Envoy 등
로드 밸런싱 Nginx, Ribbon 등
서비스 인터페이스 호출(클라이언트 단순화 도구) Fegin 등
메시지 queue Kafka, RabbitMQ, ActiveMQ 등
서비스 구성 센터 관리 SpringCloudConfig, Chef 등
서비스 라우팅(API 게이트웨이) Zuul 등
서비스 모니터링 Zabbix, Nagios, Metrics, Spectator 등
전체 링크 추적 Zipkin, Brave, Dapper 등
서비스 배포 Docker, OpenStack, Kubernetes 등
데이터 흐름 운영 개발 키트 SpringCloud Stream(Redis, Rabbit으로 캡슐화됨) , kafka 등 메시지 주고받기)
이벤트 메시지 버스 봄구름 버스

9. 마이크로서비스 아키텍처란?

앞서 마이크로서비스가 무엇인지 이해했다면 기본적으로 마이크로서비스 아키텍처도 이미 이해하고 있는 것입니다.

마이크로서비스 아키텍처는 마이크로서비스를 관리, 통합, 적용하는 것입니다. 마이크로서비스 아키텍처는 마이크로서비스에 의존하며 마이크로서비스를 기반으로 합니다.

예: 위에 나열된 마이크로서비스란 무엇입니까? 병원에서 각 부서는 독립적인 마이크로서비스이므로 병원장은 원장이 다음 부서를 관리할 수 있는 것처럼 대규모 마이크로서비스 아키텍처입니다. 마이크로서비스 아키텍처는 주로 이 기능을 가지고 있습니다.

위 내용은 9가지 마이크로서비스 인터뷰 질문 중 몇 개에 답할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Java后端技术全栈에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제