Compartilhamento de tecnologia

Perguntas frequentes em entrevistas do springcloud

2024-07-08

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

Spring Cloud é uma solução de arquitetura de microsserviços baseada em Spring Boot, que inclui muitas ferramentas e estruturas para construir e gerenciar microsserviços. Nas entrevistas, as perguntas relacionadas ao Spring Cloud geralmente cobrem seus principais conceitos, componentes, padrões comuns e soluções. Aqui estão algumas perguntas frequentes e suas respostas durante as entrevistas do Spring Cloud:

1. Quais são os componentes principais do Spring Cloud?

Spring Cloud contém muitos componentes principais, os mais comuns são:

  • Configuração do Spring Cloud: ferramenta de gerenciamento de configuração distribuída que suporta gerenciamento centralizado e atualização dinâmica de arquivos de configuração.
  • Primavera Nuvem Netflix: Incluindo Eureka (registro e descoberta de serviço), Ribbon (balanceamento de carga do cliente), Hystrix (disjuntor), Zuul (gateway API), etc.
  • Gateway de Nuvem de Primavera: Gateway de API, substituindo o Zuul, fornecendo funções de roteamento e filtragem mais eficientes.
  • Detetive da Nuvem da Primavera: Ferramenta de rastreamento distribuída, integrada com Zipkin ou Jaeger.
  • Fluxo de nuvens de primavera: uma estrutura de microsserviço baseada em mensagens que oferece suporte a uma variedade de middlewares de mensagens (como Kafka, RabbitMQ).
  • Ônibus da Nuvem de Primavera: Barramento de eventos, geralmente usado para atualizar dinamicamente a configuração.
  • Spring Cloud OpenFeign: cliente HTTP declarativo que simplifica chamadas HTTP.

2. O que é registro e descoberta de serviços? Como o Spring Cloud é implementado?

O registro e descoberta de serviços é um conceito-chave na arquitetura de microsserviços, que se refere ao registro e descoberta dinâmicos de instâncias de serviço. Um centro de registro de serviços é responsável por manter uma lista de instâncias de serviço. Cada microsserviço registrará seu endereço e metadados no centro de registro de serviços quando for iniciado.

O componente de registro e descoberta de serviço comumente usado no Spring Cloud é o Netflix Eureka.

Processo de registro e descoberta de serviço

  1. Registro de serviço: a instância de serviço registra suas próprias informações (como nome do serviço, endereço da instância, etc.) no Eureka Server ao iniciar.
  2. descoberta de serviço: quando o cliente chama um serviço, ele consulta o Eureka Server para obter a lista de instâncias de serviço que precisam ser chamadas.

Código de amostra

  • Configurar o servidor Eureka:
 

código de cópia java

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

  • Configurar o cliente Eureka:
 

código de cópia java

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

3. O que é balanceamento de carga? Como o Spring Cloud é implementado?

O balanceamento de carga é uma tecnologia que distribui solicitações entre várias instâncias de serviço para melhorar a disponibilidade e o desempenho do sistema. Spring Cloud fornece uma solução de balanceamento de carga do lado do cliente, implementada principalmente por meio do Ribbon.

Principais recursos do Ribbon

  • Fornece um conjunto de estratégias de balanceamento de carga (como round-robin, aleatório, ponderado, etc.).
  • Suporta atualização dinâmica da lista de serviços.

Código de amostra

 

código de cópia java

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

4. O que é um fusível? Como o Spring Cloud é implementado?

Os disjuntores são um mecanismo de proteção utilizado para evitar falhas em cascata entre serviços. Ao detectar que uma instância de serviço está indisponível, ele retornará diretamente uma resposta de erro para evitar continuar a chamar a instância indisponível.

Spring Cloud usa Netflix Hystrix para implementar disjuntores.

Principais recursos do Hystrix

  • Monitore e isole chamadas de serviço.
  • Fornece mecanismo de fallback (Fallback).
  • Fornece monitoramento de indicadores em tempo real.

Código de amostra

 

código de cópia java

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

5. O que é um gateway de API? Como o Spring Cloud é implementado?

O gateway de API é um componente importante na arquitetura de microsserviços. Ele é usado para gerenciar e rotear solicitações de clientes de maneira uniforme e fornece autenticação, autenticação, limitação de corrente, registro e outras funções.

Spring Cloud fornece duas soluções de gateway de API:

  • Zuul: solução de gateway de API fornecida pela Netflix, comumente usada no ecossistema Spring Cloud Netflix.
  • Gateway de Nuvem de Primavera: O gateway API desenvolvido pela equipe Spring tem maior desempenho e funções mais poderosas e geralmente é usado para substituir o Zuul.

Exemplo de código do Spring Cloud Gateway

 

código de cópia yaml

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

6. O que é Spring Cloud Config? Como funciona?

Spring Cloud Config é uma ferramenta de gerenciamento de configuração distribuída usada para gerenciar centralmente os arquivos de configuração de vários microsserviços e oferece suporte à atualização dinâmica de configurações.

princípio de trabalho

  1. Armazenamento de configuração: os arquivos de configuração são armazenados em um repositório centralizado (por exemplo, Git, SVN, sistema de arquivos).
  2. Configurar servidor: Spring Cloud Config Server lê arquivos de configuração de um repositório centralizado e os fornece aos clientes.
  3. Configurar cliente: O Spring Cloud Config Client solicita o arquivo de configuração do Config Server na inicialização, carrega e aplica a configuração.

Código de amostra

  • Configurar servidor:
 

código de cópia java

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

  • configurar cliente (bootstrap.yml):
 

código de cópia yaml

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

7. O que é rastreamento distribuído? Como o Spring Cloud é implementado?

O rastreamento distribuído é usado para rastrear links de solicitação em vários serviços, ajudando os desenvolvedores a monitorar e depurar sistemas distribuídos.

Spring Cloud Sleuth fornece uma solução de rastreamento distribuído integrando Zipkin ou Jaeger.

Características gerais de Spring Cloud Sleuth

  • Adicione automaticamente IDs de rastreamento e IDs de intervalo exclusivos ao seu aplicativo.
  • Fornece correlação de dados de log e rastreio.
  • Integre Zipkin ou Jaeger para coleta e exibição centralizada de dados de rastreamento.

Código de amostra

 

xmlCopiar código