Console - Introduzione
Consul è uno strumento basato su Hashicorp per scoprire e configurare una varietà di servizi diversi nella tua infrastruttura. È basato e costruito su Golang. Uno dei motivi principali per costruire Consul era mantenere i servizi presenti nei sistemi distribuiti. Alcune delle caratteristiche significative fornite da Console sono le seguenti.
Service Discovery - Utilizzando DNS o HTTP, le applicazioni possono trovare facilmente i servizi da cui dipendono.
Health Check Status- Può fornire un numero qualsiasi di controlli sanitari. Viene utilizzato dai componenti di rilevamento del servizio per instradare il traffico lontano da host malsani.
Key/Value Store - Può utilizzare l'archivio chiave / valore gerarchico di Console per qualsiasi numero di scopi, tra cui configurazione dinamica, contrassegno delle funzionalità, coordinamento, elezione del leader, ecc.
Multi Datacenter Deployment- Consul supporta più datacenter. Viene utilizzato per creare livelli aggiuntivi di astrazione per estendersi a più regioni.
Web UI - Consul fornisce ai suoi utenti una bellissima interfaccia web con la quale può essere facile da usare e gestire tutte le funzionalità di console.
Scoperta del servizio
La scoperta del servizio è una delle caratteristiche più importanti di Consul. È definito come il rilevamento di diversi servizi e protocolli di rete utilizzando i quali viene trovato un servizio. L'utilizzo della scoperta dei servizi è un vantaggio per i sistemi distribuiti. Questo è uno dei problemi principali che devono affrontare le odierne industrie su larga scala con l'avanzamento dei sistemi distribuiti nel loro ambiente.
Confronto con Etcd e Zookeeper
Quando esaminiamo altri strumenti di rilevamento dei servizi in questo dominio, abbiamo due opzioni popolari. Alcuni dei principali attori dell'industria del software lo hanno utilizzato in passato. Questi strumenti sonoEtcd e Zookeeper.
Consideriamo la seguente tabella per confrontare i diversi aspetti di ogni strumento. Capiremo anche cosa utilizza internamente ciascuno di loro.
Proprietà | Console | Etcd | Custode dello zoo |
---|---|---|---|
Interfaccia utente | A disposizione | ||
RPC | A disposizione | A disposizione | |
Controllo della salute | API HTTP | API HTTP | TCP |
Valore chiave | 3 modalità di coerenza | Buona consistenza | Forte coerenza |
Sistema di token | A disposizione | ||
linguaggio | Golang | Golang | Giava |
Console - Membri e agenti
I membri di console possono essere definiti come l'elenco di diversi agenti e modalità server utilizzando i quali viene distribuito un cluster di console. Consul ci fornisce una funzionalità della riga di comando tramite la quale possiamo facilmente elencare tutti gli agenti associati a console.
L'agente del console è il processo centrale di Console. L'agente conserva le informazioni sull'appartenenza, registra i servizi, esegue controlli, risponde alle query, ecc. Qualsiasi agente può essere eseguito in una delle due modalità:Client o Server. Queste due modalità possono essere utilizzate in base al loro ruolo deciso quando si utilizza console. L'agente del console ci aiuta fornendoci le informazioni elencate di seguito.
Node name - Questo è il nome host della macchina.
Datacenter- Il datacenter in cui l'agente è configurato per essere eseguito. Ogni nodo deve essere configurato per segnalare al proprio data center.
Server- Indica se l'agente è in esecuzione in modalità server o client. I nodi del server partecipano al quorum di consenso, archiviando lo stato del cluster e gestendo le query.
Client Addr- È l'indirizzo utilizzato per le interfacce client dall'agente. Include le porte per le interfacce HTTP, DNS e RPC.
Cluster Addr- È l'indirizzo e l'insieme di porte utilizzati per la comunicazione tra gli agenti Consul in un cluster. Questo indirizzo deve essere raggiungibile da tutti gli altri nodi.
Nel prossimo capitolo capiremo l'architettura per Console.