Compartilhamento de tecnologia

Spring Cloud Alibaba - Sentinela de tráfego do sistema distribuído Sentinel

2024-07-08

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

Insira a descrição da imagem aqui

Visão geral

À medida que os microsserviços se tornam mais populares, a estabilidade entre serviços e serviços torna-se cada vez mais importante. Sentinel é um componente de gerenciamento de tráfego para arquitetura de serviço heterogêneo distribuído e multilíngue. Ele usa principalmente tráfego como ponto de entrada, incluindo roteamento de tráfego, controle de tráfego, modelagem de tráfego, degradação de disjuntores, proteção adaptativa de sistema contra sobrecarga, proteção de tráfego de pontos quentes, etc. . Dimension para ajudar os desenvolvedores a garantir a estabilidade dos microsserviços.

Resumindo, Sentinel é um componente de gerenciamento de tráfego equivalente ao Spring Cloud Circurk Breaker.

recurso

  • Cenários de aplicativos avançados: o Sentinel assumiu os principais cenários da promoção de tráfego Double Eleven do Alibaba nos últimos 10 anos, como vendas flash (ou seja, o tráfego burst é controlado dentro da faixa que a capacidade do sistema pode suportar), redução de pico de mensagens e preenchimento de vale e controle de tráfego de cluster, fusão em tempo real de aplicativos downstream indisponíveis, etc.
  • Monitoramento completo em tempo real: o Sentinel também oferece funções de monitoramento em tempo real. Você pode ver os dados de segundo nível de uma única máquina conectada ao aplicativo no console e até mesmo o status resumido da operação de um cluster com menos de 500 máquinas.
  • Extenso ecossistema de código aberto: o Sentinel fornece módulos de integração prontos para uso com outras estruturas/bibliotecas de código aberto, como integração com Spring Cloud, Apache Dubbo, gRPC e Quarkus. Você só precisa introduzir as dependências correspondentes e realizar uma configuração simples para conectar-se rapidamente ao Sentinel. Ao mesmo tempo, o Sentinel fornece implementações nativas em várias linguagens, como Java/Go/C.
  • Mecanismo de extensão SPI completo: o Sentinel fornece uma interface de extensão SPI completa e fácil de usar. Você pode personalizar rapidamente a lógica implementando interfaces de extensão. Por exemplo, gerenciamento de regras personalizado, adaptação de fontes de dados dinâmicas, etc.

Principais características do Sentinela:
Insira a descrição da imagem aqui

conceito básico

recurso

Os recursos são um conceito-chave no Sentinel. Pode ser qualquer coisa dentro de uma aplicação Java, como um serviço fornecido pela aplicação, ou por outra aplicação chamada pela aplicação, ou até mesmo um trecho de código. Na documentação a seguir, utilizaremos recursos para descrever blocos de código.

Contanto que o código definido por meio da API do Sentinel seja um recurso, ele poderá ser protegido pelo Sentinel. Na maioria dos casos, você pode usar assinaturas de métodos, URLs ou até mesmo nomes de serviços como nomes de recursos para identificar recursos.

regra
As regras definidas em torno do status dos recursos em tempo real podem incluir regras de controle de fluxo, regras de degradação de disjuntores e regras de proteção do sistema. Todas as regras podem ser ajustadas dinamicamente em tempo real. (As regras podem ser definidas no console do Sentinel, na configuração yml e no código java)

Instale o Sentinela

O uso do Sentinel pode ser dividido em duas partes:

  • Biblioteca principal (cliente Java): não depende de nenhum framework/biblioteca e pode ser executada em Java 8 e superiorversão do ambiente de tempo de execução e também possui bom suporte para frameworks como Dubbo/Spring Cloud.
  • Dashboard: Dashboard é o principal responsável por gerenciar regras de push, monitorar e gerenciar informações da máquina.

Caminho de download:https://github.com/alibaba/Sentinel/releases

Após o download, encontre o pacote jar e execute o comando para iniciar o console do Sentinel.

java -jar sentinel-dashboard-xxx.jar

O ambiente local deve ser jdk8 ou superior e a porta 8080 não está ocupada (porta do console do Sentinel)
A partir do Sentinel 1.6.0, o console do Sentinel apresenta funções básicas de login. O nome de usuário e a senha padrão são URL de acesso: http://localhost:8080.
Insira a descrição da imagem aqui

O caso da introdução do Sentinel em microsserviços

Crie um novo microsserviço, introduza o Nacos e o Sentinel, registre o serviço no Nacos e realize monitoramento de tráfego, disjuntor e downgrade do serviço.

Introduzir dependências