Análise de 29 pontos de conhecimento de microsserviço que você deve dominar em 2020? Eu não entendo você vem para mim!

Introdução de abertura

Microsserviços (ou arquitetura de microsserviços) é uma abordagem de arquitetura nativa da nuvem em que um único aplicativo consiste em muitos componentes ou serviços menores que são fracamente acoplados e implementáveis ​​de forma independente. Esses serviços geralmente
têm sua própria pilha, incluindo bancos de dados e modelos de dados; eles se
comunicam entre si por meio de uma combinação de APIs REST, fluxos de eventos e corretores de mensagens;
eles são organizados por recursos de negócios e as linhas que separam os serviços são geralmente chamadas de contextos limitados.
Embora muitas discussões sobre microsserviços tenham girado em torno de definições e características de arquitetura, seu valor pode ser mais geralmente compreendido por meio de benefícios empresariais e organizacionais bastante simples:

  • Você pode atualizar o código mais facilmente.
  • A equipe pode usar diferentes pilhas para diferentes componentes.
  • Os componentes podem ser dimensionados independentemente uns dos outros, reduzindo o desperdício e o custo de ter que dimensionar toda a aplicação, porque uma única função pode enfrentar carga excessiva.

Os microsserviços também podem ser compreendidos pelo que não são. As duas comparações mais frequentes da arquitetura de microsserviço são a arquitetura geral e a arquitetura orientada a serviços (SOA).
A diferença entre microsserviços e a arquitetura geral é que os microsserviços consistem em muitos serviços menores e fracamente acoplados para formar um aplicativo, em oposição à abordagem geral de aplicativos grandes e fortemente acoplados.
A diferença entre microsserviços e SOA pode não ser clara. Embora seja possível formar um contraste técnico entre microsserviços e SOA, especialmente em torno da função de um barramento de serviço corporativo (ESB), é mais fácil tratar a diferença como parte do escopo. SOA é um trabalho corporativo que visa padronizar a maneira como todos os serviços se comunicam e se integram, enquanto a arquitetura de microsserviço é específica do aplicativo.
Insira a descrição da imagem aqui

texto

1. O que é Spring Cloud?

Em microsserviços, SpringCloud é um sistema que fornece integração com sistemas externos. É uma estrutura ágil que pode construir aplicativos com rapidez e facilidade. Associado a uma quantidade limitada de processamento de dados, ele desempenha um papel muito importante na arquitetura do microsserviço.
A seguir estão os principais recursos do Spring Cloud:

  • Configuração com versão / distribuída.
  • Registro e descoberta de serviços.
  • Serviços e chamadas entre serviços.
  • roteamento.
  • Disjuntor e balanceamento de carga.
  • Mensagens distribuídas.

2. O que é Spring Boot?

Spring boot é o principal tópico das perguntas da entrevista de microsserviço.
Com a adição de novos recursos, o Spring se torna cada vez mais complexo. Sempre que você inicia um novo projeto, deve adicionar um novo caminho de construção ou dependência Maven. Resumindo, você precisa fazer tudo do zero. Spring Boot é uma solução que ajuda a evitar todas as configurações de código.

3. Como substituir as propriedades padrão do projeto Spring Boot?

Isso pode ser feito especificando propriedades no arquivo application.properties.
Por exemplo,

  • Em aplicativos Spring MVC, você deve especificar o sufixo e o prefixo. Isso pode ser feito inserindo as propriedades mencionadas abaixo no arquivo application.properties.
  • Para o sufixo-spring.mvc.view.suffix: .jsp
  • Para o prefixo-spring.mvc.view.prefix: / WEB-INF /

Quarto, o papel do atuador na Spring Boot

É um dos recursos mais importantes que ajuda a acessar o estado atual dos aplicativos em execução em um ambiente de produção. Existem vários indicadores que podem ser usados ​​para verificar o status atual. Eles também fornecem terminais para serviços da Web RESTful, que podem ser usados ​​simplesmente para verificar diferentes métricas.

5. Como implementar a segurança Spring em aplicativos Spring Boot?

A implementação requer configuração mínima. Tudo que você precisa fazer é spring-boot-starter-security para adicionar starter ao arquivo pom.xml. Você também precisa criar uma classe de configuração Spring que substituirá os métodos necessários enquanto estende a segurança no aplicativo WebSecurityConfigurerAdapter. Este é um exemplo de código:

package com.gkatzioura.security.securityendpoints.config; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.security.config.annotation.web.builders.HttpSecurity; 
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
         
@Override    
protected void configure(HttpSecurity http) throws Exception {
    
             
http.authorizeRequests()             
.antMatchers("/welcome").permitAll()             
.anyRequest().authenticated()             
.and()             
.formLogin()             
.permitAll()             
.and()             
.logout()             
.permitAll();     
} 
}

6. Quais contêineres integrados o Spring Boot suporta?

Sempre que você cria um aplicativo Java, pode implantá-lo de duas maneiras:
usando um contêiner de aplicativo externo.
Incorpore o contêiner no arquivo jar.
Spring Boot inclui servidores Jetty, Tomcat e Undertow, todos integrados.
Jetty - usado para um grande número de projetos, o Eclipse Jetty pode ser integrado em estruturas, servidores de aplicativos, ferramentas e clusters.
Tomcat-Apache Tomcat é uma implementação de JavaServer Pages de software livre que pode ser usada bem com sistemas embarcados.
Undertow - um servidor web flexível e proeminente, ele usa um pequeno programa de processamento único para desenvolver um servidor web.

7. O que significa teste de ponta a ponta de microsserviços?

O teste de ponta a ponta verifica todos os processos no fluxo de trabalho para verificar se tudo está funcionando conforme o esperado. Também garante que o sistema funcione de maneira uniforme para atender às necessidades de negócios.

8. O que é monitoramento semântico?

Ele combina o monitoramento de todo o aplicativo e testes automatizados. O principal benefício do monitoramento semântico é descobrir os fatores mais lucrativos para o seu negócio.
De uma perspectiva de negócios, o monitoramento semântico e o monitoramento da camada de serviço podem monitorar microsserviços. Depois que um problema é detectado, eles podem obter isolamento e classificação incorreta mais rapidamente, reduzindo assim o grande tempo necessário para o reparo. Ele classifica a camada de serviço e a camada de transação para identificar transações que são afetadas por baixa disponibilidade ou desempenho.

9. Como configurar a descoberta de serviço?

Existem várias maneiras de configurar a descoberta de serviço. Vou escolher aquele que considero mais eficiente, o Eureka da Netflix. Este é um programa simples e não afetará muito o aplicativo. Além disso, ele oferece suporte a vários tipos de aplicativos da web.
A configuração do Eureka consiste em duas etapas - configuração do cliente e configuração do servidor.

A configuração do cliente pode ser feita facilmente usando arquivos de propriedades. Em clas spath, Eureka procura um arquivo eureka-client.properties. Ele também procura cobertura causada pelo ambiente no arquivo de propriedades específicas do ambiente.

Para configuração do servidor, você deve primeiro configurar o cliente. Após a conclusão, o servidor inicia um cliente, que é usado para localizar outros servidores. . Por padrão, o servidor Eureka usa a configuração do cliente para encontrar servidores pares.

10. Por que escolher uma arquitetura de microsserviço?

Esta é uma pergunta de entrevista de microsserviço muito comum, você deve estar pronto! A arquitetura de microsserviço oferece muitas vantagens. Aqui estão alguns:

  • Os microsserviços podem se adaptar facilmente a outras estruturas ou tecnologias.
  • A falha de um único processo não afetará todo o sistema.
  • Fornecer suporte para grandes empresas e pequenas equipes.
  • Ele pode ser implantado de forma independente em um tempo relativamente curto.

11. Por que preciso de relatórios e painéis em microsserviços?

Relatórios e painéis são usados ​​principalmente para monitorar e manter microsserviços. Existem várias ferramentas que podem ajudar a atingir esse objetivo. Relatórios e painéis podem ser usados ​​para:

  • Descubra quais microsserviços expõem quais recursos.
  • Descubra quais serviços são afetados quando o componente muda.
  • Forneça um ponto simples, contanto que você precise de um documento, você pode acessá-lo.
  • A versão do componente implantado.

12. Por que as pessoas hesitam em usar microsserviços?

Tenho visto muitos desenvolvedores tateando nessa questão. Afinal, essa pergunta será feita a eles durante uma entrevista para a função de arquiteto de microsserviço, portanto, admitir suas deficiências pode ser um pouco complicado. Aqui estão algumas boas respostas:

  • Eles exigem muita colaboração - os microsserviços exigem muita colaboração. Módulos de microsserviço diferentes podem estar espalhados em equipes diferentes e as equipes precisam sempre manter uma boa sincronização.
  • Eles precisam construir uma arquitetura pesada - o sistema é distribuído e há muitas arquiteturas envolvidas.
  • Eles precisam de muito planejamento para lidar com a sobrecarga operacional - se você planeja usar uma arquitetura de microsserviço, precisa estar preparado para a sobrecarga operacional.
  • São necessários profissionais qualificados, que possam oferecer suporte a microsserviços distribuídos de forma heterogênea.

13. Como funciona o PACT?

PACT é uma ferramenta de código aberto. Ajuda a testar a interação entre consumidores e provedores de serviços. O desenvolvedor de serviços ao consumidor primeiro escreve um teste que define o modo de interação com o provedor de serviços. O teste inclui o status do provedor, o corpo da solicitação e a resposta esperada. Com base nisso, o PACT criou um stub para realizar testes nele. A saída é armazenada em um arquivo JSON.

14. Fale sobre design orientado a domínio

Concentre-se principalmente na lógica do domínio central. O modelo baseado em domínio verifica projetos complexos. Isso envolve trabalhar regularmente com especialistas de domínio no nível da empresa para resolver problemas relacionados ao domínio e melhorar o modelo de aplicativo. Ao responder a esta pergunta da entrevista de microsserviço, você também precisa mencionar os princípios básicos do DDD. eles são:

  • DDD concentra-se principalmente na lógica do domínio e no próprio domínio.
  • O projeto complexo é totalmente baseado no modelo de domínio.
  • A fim de melhorar o design do modelo e resolver quaisquer problemas emergentes, DDD coopera continuamente com especialistas na área da empresa.

15. O que é acoplamento e coesão?

Uma medida da força das dependências entre os componentes é considerada acoplamento. Um bom projeto é sempre considerado como tendo alta coesão e baixo acoplamento.
Os entrevistadores costumam perguntar sobre coesão. É também outra unidade de medida. É mais parecido com o grau em que os elementos dentro de um módulo permanecem integrados.
Deve ser lembrado que uma chave importante para projetar microsserviços é a combinação de baixo acoplamento e alta coesão. Quando o acoplamento é baixo, o serviço tem muito pouca dependência de outros serviços. Isso mantém a integridade do serviço. Com alta coesão, torna-se possível armazenar todas as lógicas relevantes no serviço. Caso contrário, os serviços tentarão se comunicar entre si, o que afeta o desempenho geral.

16. O que é Oauth?

Um protocolo de autorização aberto, que permite o acesso aos recursos do proprietário do recurso, habilitando aplicativos cliente (como provedores de terceiros Facebook, GitHub, etc.) no serviço HTTP. Portanto, você pode compartilhar recursos armazenados em um site com outro site sem usar suas credenciais.

OAuth permite que terceiros, como o Facebook, usem as informações da conta do usuário final, mantendo-as seguras (sem usar ou expor a senha do usuário). É mais como um intermediário em nome do usuário, enquanto fornece ao servidor um token para acessar as informações necessárias.

17. Por que precisamos de contêineres de microsserviço?

Para gerenciar aplicativos baseados em microsserviços, os contêineres são a escolha mais simples. Ajuda os usuários a implantar e desenvolver individualmente. Você também pode usar o Docker para empacotar microsserviços em imagens de contêiner. Sem nenhuma dependência ou trabalho adicional, os microsserviços podem usar esses elementos.

18. Qual é o método para acessar microsserviços RESTful?

Outra pergunta da entrevista de microsserviço que costuma ser feita é como acessar microsserviços RESTful. Você pode fazer isso de duas maneiras:

  • Use modelos REST com balanceamento de carga.
  • Use vários microsserviços.

19. Quais são os principais obstáculos aos testes de microsserviços?

Por falar em deficiências, aqui está outra pergunta da entrevista de microsserviço que girará em torno dos desafios enfrentados ao testar microsserviços.

Antes de começar a escrever casos de teste para testes de integração, os testadores devem ter um conhecimento completo de todos os processos de entrada e saída. Quando equipes independentes estão desenvolvendo funções diferentes, a colaboração pode ser uma tarefa muito difícil. É difícil encontrar uma janela de tempo livre para realizar um teste de regressão completo. Conforme o número de microsserviços aumenta, a complexidade do sistema também aumenta. Durante a transição de uma arquitetura monolítica, os testadores devem garantir que a comunicação interna entre os componentes não seja interrompida.

Vinte erros comuns ao fazer a transição para microsserviços

Os erros geralmente ocorrem não apenas no desenvolvimento, mas também em aspectos do processo. Alguns erros comuns são:

  • Freqüentemente, os desenvolvedores não conseguem descrever os desafios atuais.
  • Reescreva o programa existente.
  • Responsabilidades, prazos e limites não estão claramente definidos.
  • Falha ao implementar e determinar o escopo da automação desde o início.

21. Qual é a base do design de microsserviços?

Esta é provavelmente uma das perguntas mais comuns da entrevista de microsserviço. Ao responder a esta pergunta, você precisa se lembrar do seguinte:

  • Defina o escopo.
  • Combine baixo acoplamento e alta coesão.
  • Crie um serviço com um ID exclusivo. O ID exclusivo servirá como fonte de identificação, muito parecido com uma chave exclusiva em uma tabela de banco de dados.
  • Crie a API certa e preste atenção especial durante o processo de integração.
  • Restrinja o acesso aos dados e restrinja-os ao nível necessário.
  • Mantenha um fluxo uniforme entre a solicitação e a resposta.
  • Automatize a maioria dos processos para reduzir a complexidade do tempo.
  • Mantenha o número de tabelas no mínimo para reduzir a complexidade do espaço.
  • Monitore continuamente a arquitetura e conserte defeitos a tempo.
  • O armazenamento de dados de cada microsserviço deve ser separado.
  • Para cada microsserviço, deve haver uma compilação independente.
  • Implante o microsserviço no contêiner.
  • O servidor deve ser considerado sem estado.

22. Qual é o uso da anotação WebMvcTest no aplicativo Spring MVC?

A anotação WebMvcTest é usada para testar a unidade de aplicativos Spring MVC. Queremos apenas iniciar o ToTestController. Quando este teste de unidade é executado, todos os outros controladores e mapas não serão iniciados.

@WebMvcTest(value = ToTestController.class, secure = false):

23. O que é um contexto limitado?

O contexto limitado é o modo principal do design orientado por domínio. O foco do departamento de design estratégico DDD é lidar com grandes modelos e equipes. O DDD lida com grandes modelos, dividindo-os em diferentes contextos delimitados e esclarecendo seus inter-relacionamentos.

24. Quais são os diferentes tipos de autenticação de dois fatores?

Três tipos de credenciais são necessários para realizar a autenticação de dois fatores:

  • Uma coisa que você sabe, como senha, senha ou modo de bloqueio de tela.
  • As credenciais físicas que você possui, como OTP, telefone ou cartão ATM, ou seja, qualquer tipo de credencial que você possui em dispositivos externos ou de terceiros.
  • Sua identidade física, como autenticação de voz ou segurança biométrica, como impressão digital ou leitor de olhos.

25. O que é um certificado de cliente?

Um certificado digital usado pelo sistema do cliente para enviar uma solicitação autenticada a um servidor remoto é chamado de certificado do cliente. Os certificados do cliente desempenham um papel muito importante em muitos projetos de autenticação mútua e fornecem uma forte garantia para a identidade do solicitante.

26. O que é a Lei de Conway?

A Lei de Conway afirma que “O design da organização do sistema de design é equivalente à estrutura de comunicação dentro e entre as organizações.” Os
entrevistadores podem fazer perguntas em entrevistas de antisserviços, como a relação entre a lei de Conway e os microsserviços. Algumas APIs fracamente acopladas formam uma arquitetura de microsserviço. Esta estrutura é muito adequada para pequenas equipes implementarem componentes autônomos. Essa arquitetura torna as organizações mais flexíveis na reorganização de seus processos de trabalho.

27. Como configurar o log do aplicativo Spring Boot?

Spring Boot vem com suporte para Log4J2, Java Util Logging e Logback. Geralmente é pré-configurado para saída de console. Eles podem ser configurados apenas especificando logging.level no arquivo application.properties.

logging.level.spring.framework=Debug

28. Como você executará o teste de segurança em microsserviços?

Você precisa testar cada parte independentemente. Existem três procedimentos comuns:

  • Varredura de código - para garantir que qualquer linha de código não tenha erros e possa ser copiada.
  • Flexibilidade - A solução de segurança deve ser flexível para que possa ser ajustada aos requisitos do sistema.
  • Os protocolos de adaptabilidade-segurança devem ser flexíveis e atualizados para lidar com novas ameaças de hackers ou violações de segurança.

29. O que é idempotência e como é usada?

Idempotência se refere a um cenário em que você executa uma tarefa repetidamente, mas o resultado final permanece o mesmo ou semelhante.
A idempotência é usada principalmente como fonte de dados ou serviço remoto. Quando recebe mais de um conjunto de instruções, ele processa apenas um conjunto de instruções.

Fora do assunto

Este é o fim deste compartilhamento sobre microsserviços. Devido a limitações de espaço, apenas uma pequena parte do conteúdo é lançada. Recentemente, é o melhor momento para encontrar um emprego. Quero receber mais perguntas relacionadas a microsserviços e entrevistar os principais fornecedores. Você pode clicar aqui para obter as informações, código: qf A
seguir está uma captura de tela de algumas das informações (todas as informações foram integradas em um documento e o pdf está compactado e empacotado).

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/S11035762/article/details/108597794
Recomendado
Clasificación