Condivisione della tecnologia

Spring Cloud Alibaba - Sentinella del traffico del sistema distribuito Sentinel

2024-07-08

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

Inserisci qui la descrizione dell'immagine

Panoramica

Man mano che i microservizi diventano più popolari, la stabilità tra servizi e servizi diventa sempre più importante. Sentinel è un componente di gestione del traffico per un'architettura di servizi eterogenei distribuiti e multilingue. Utilizza principalmente il traffico come punto di ingresso, coprendo l'instradamento del traffico, il controllo del traffico, la modellazione del traffico, il degrado degli interruttori automatici, la protezione adattiva dal sovraccarico del sistema, la protezione del traffico hot spot, ecc. Dimension per aiutare gli sviluppatori a garantire la stabilità dei microservizi.

In poche parole, Sentinel è un componente di gestione del traffico, equivalente a Spring Cloud Circurk Breaker.

caratteristica

  • Ricchi scenari applicativi: Sentinel ha rilevato gli scenari principali della promozione del traffico Double Eleven di Alibaba negli ultimi 10 anni, come le vendite flash (ovvero, il traffico burst è controllato entro l'intervallo che la capacità del sistema può sopportare), il peak shaving dei messaggi e riempimento delle valli e controllo del traffico dei cluster, fusione in tempo reale delle applicazioni non disponibili a valle, ecc.
  • Monitoraggio completo in tempo reale: Sentinel fornisce anche funzioni di monitoraggio in tempo reale. Nella console è possibile visualizzare i dati di secondo livello di una singola macchina connessa all'applicazione e persino lo stato operativo riepilogativo di un cluster di meno di 500 macchine.
  • Ampio ecosistema open source: Sentinel fornisce moduli di integrazione pronti all'uso con altri framework/librerie open source, come l'integrazione con Spring Cloud, Apache Dubbo, gRPC e Quarkus. Devi solo introdurre le dipendenze corrispondenti ed eseguire una semplice configurazione per connetterti rapidamente a Sentinel. Allo stesso tempo, Sentinel fornisce implementazioni native in più linguaggi come Java/Go/C.
  • Meccanismo di estensione SPI completo: Sentinel fornisce un'interfaccia di estensione SPI completa e facile da usare. Puoi personalizzare rapidamente la logica implementando le interfacce di estensione. Ad esempio, gestione personalizzata delle regole, adattamento di origini dati dinamiche, ecc.

Le principali caratteristiche di Sentinel:
Inserisci qui la descrizione dell'immagine

concetto di base

risorsa

Le risorse sono un concetto chiave in Sentinel. Può trattarsi di qualsiasi cosa all'interno di un'applicazione Java, ad esempio un servizio fornito dall'applicazione o da un'altra applicazione richiamata dall'applicazione, o anche un pezzo di codice. Nella documentazione seguente utilizzeremo le risorse per descrivere i blocchi di codice.

Finché il codice definito tramite l'API Sentinel è una risorsa, può essere protetto da Sentinel. Nella maggior parte dei casi, puoi utilizzare firme di metodi, URL o anche nomi di servizi come nomi di risorse per identificare le risorse.

regola
Le regole impostate sullo stato in tempo reale delle risorse possono includere regole di controllo del flusso, regole di degrado degli interruttori automatici e regole di protezione del sistema. Tutte le regole possono essere modificate dinamicamente in tempo reale. (Le regole possono essere impostate nella console Sentinel, nella configurazione yml e nel codice Java)

Installa Sentinel

L'utilizzo di Sentinel può essere suddiviso in due parti:

  • Libreria core (client Java): non dipende da alcun framework/libreria e può essere eseguita Java 8 e versioni successiveversione dell'ambiente runtime e ha anche un buon supporto per framework come Dubbo/Spring Cloud.
  • Dashboard: Dashboard è principalmente responsabile della gestione delle regole push, del monitoraggio e della gestione delle informazioni sulla macchina.

Percorso di download:https://github.com/alibaba/Sentinel/releases

Dopo il download, trova il pacchetto jar ed esegui il comando per avviare la console Sentinel.

java -jar sentinel-dashboard-xxx.jar

L'ambiente locale deve avere la versione jdk8 o successiva e la porta 8080 non è occupata (porta della console Sentinel)
A partire da Sentinel 1.6.0, la console Sentinel introduce funzioni di accesso di base. Il nome utente e la password predefiniti sono entrambi URL di accesso Sentinel: http://localhost:8080
Inserisci qui la descrizione dell'immagine

Il caso dell'introduzione di Sentinel nei microservizi

Creare un nuovo microservizio, introdurre Nacos e Sentinel, registrare il servizio in Nacos ed eseguire il monitoraggio del traffico, l'interruttore automatico e il downgrade del servizio.

Introdurre le dipendenze