Condivisione della tecnologia

Introduzione al "meccanismo di individuazione dei servizi" nei microservizi

2024-07-12

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

  • Il meccanismo di rilevamento dei servizi dei microservizi è un metodo per individuare dinamicamente le istanze del servizio per la comunicazione in un'architettura di microservizi.

  • Si basa principalmente sul centro di registrazione per implementare la registrazione del servizio, eseguire query e supportare il bilanciamento del carico, migliorando così la scalabilità e la flessibilità del sistema.

1. Concetti di base

La scoperta dei servizi si riferisce al processo di scoperta e identificazione automatica dei servizi disponibili in un sistema distribuito.

In un'architettura di microservizi, poiché i servizi sono suddivisi in più servizi piccoli e autonomi sparsi su server diversi, è necessario un meccanismo di rilevamento dei servizi per garantire una comunicazione efficace tra i servizi.

2. Passaggi principali

  • Registrazione del servizio

    • Quando un'istanza di microservizio viene avviata, registrerà le informazioni sulla posizione di rete (come indirizzo IP e numero di porta) e l'identificazione del servizio nel centro di registrazione del servizio.
    • Questo processo di registrazione è solitamente automatico e non richiede l'intervento umano.
    • Il centro di registrazione è responsabile della gestione delle informazioni di registrazione di tutte le istanze del servizio e del supporto della registrazione dinamica e dell'annullamento della registrazione delle istanze del servizio.
  • Richiesta di servizio

    • Quando un microservizio deve chiamare un altro microservizio, interroga il registro dei servizi per l'indirizzo di rete attualmente disponibile del servizio richiesto.
    • Il centro di registrazione restituisce l'elenco degli indirizzi delle istanze del servizio e il chiamante può selezionare un'istanza del servizio per la comunicazione in base alla policy di bilanciamento del carico.

3. Componenti chiave

  • Registro dei servizi

    • È il componente principale del meccanismo di rilevamento dei servizi ed è responsabile della gestione e dell'archiviazione delle informazioni di registrazione di tutte le istanze del servizio.
    • Fornisce un'interfaccia API per le istanze del servizio per registrare e annullare le operazioni e supporta inoltre i consumatori del servizio per interrogare le informazioni di registrazione delle istanze del servizio.
  • Fornitore di servizi

    • È un'istanza di microservizio che fornisce un servizio specifico.
    • Registrerà le proprie informazioni sul servizio nel registro dei servizi all'avvio e annullerà la registrazione delle proprie informazioni sul servizio alla chiusura.
  • Consumatore di servizi

    • È un'istanza di microservizio che deve chiamare altri servizi.
    • Ottiene l'indirizzo di rete del servizio richiesto interrogando il registro dei servizi e stabilisce con esso la comunicazione.

4. Come implementare il meccanismo di rilevamento dei servizi

Il meccanismo di rilevamento del servizio può essere suddiviso in due tipologie: rilevamento del client e rilevamento del server in base al metodo di implementazione:

  • modalità di rilevamento del client

    • Il client è responsabile di interrogare il centro di registrazione, ottenere un elenco di servizi disponibili e interagire direttamente con le istanze del servizio in base alla politica di bilanciamento del carico.
    • Il vantaggio è che il cliente può formulare in modo flessibile strategie di bilanciamento del carico, riducendo la dipendenza dal centro di registrazione del servizio.
    • Lo svantaggio è che il client deve implementare una logica di rilevamento complessa, che aumenta la complessità del codice e i costi di manutenzione.
  • Modalità di rilevamento del server

    • Il client invia una richiesta al server (solitamente un gateway API o un proxy di servizio) e il server è responsabile di interrogare il centro di registrazione e inoltrare la richiesta all'effettiva istanza del servizio.
    • Il vantaggio è che semplifica l'implementazione del client e riduce la complessità del codice e i costi di manutenzione.
    • Lo svantaggio è che aumenta la latenza del sistema e i punti di errore, poiché tutte le richieste devono essere inoltrate tramite il server.

5. Vantaggi del meccanismo di rilevamento dei servizi

  • Ridurre l'accoppiamento tra i servizi

    • I microservizi non hanno bisogno di conoscere direttamente gli indirizzi di rete degli altri, devono solo comunicare attraverso il centro di registrazione dei servizi.
  • Migliora la scalabilità e la flessibilità del sistema

    • Poiché i servizi cambiano dinamicamente (ad esempio espansione, riduzione, migrazione e così via), il centro di registrazione del servizio può aggiornare le informazioni sull'istanza del servizio in tempo reale per garantire che la comunicazione tra i servizi non venga influenzata.
  • Supporta il bilanciamento del carico e il failover

    • Il client può ottenere l'elenco di indirizzi di più istanze del servizio dal centro di registrazione del servizio e selezionarne una per la comunicazione in base alla policy di bilanciamento del carico. Quando un'istanza del servizio non è disponibile, il registro del servizio può contrassegnarla automaticamente come non integra ed evitare di inviarle richieste.

6. Strumenti comuni di rilevamento dei servizi

  • Eureka

    • Uno strumento di rilevamento dei servizi sviluppato da Netflix, utilizzando la modalità di rilevamento del client. È molto leggero e facile da integrare e utilizzare.
  • Console

    • Strumento del centro di rilevamento e configurazione dei servizi sviluppato da HashiCorp. Fornisce una soluzione relativamente completa che include il controllo dello stato del servizio e altre funzioni e supporta i protocolli HTTP e DNS.
  • Custode dello zoo

    • Apache ZooKeeper è un servizio di coordinamento distribuito open source che può essere utilizzato anche per l'individuazione dei servizi. Fornisce blocchi distribuiti, servizi di denominazione e altre funzioni e supporta una varietà di librerie client.

Nell'architettura dei microservizi, il meccanismo di rilevamento dei servizi realizza le funzioni di registrazione dinamica e di query delle istanze del servizio attraverso il centro di registrazione, riducendo l'accoppiamento tra i servizi e migliorando la scalabilità e la flessibilità del sistema.