Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie etcd in Golang

So verwenden Sie etcd in Golang

王林
王林Original
2023-05-10 09:24:361212Durchsuche

In verteilten Systemen ist das Konfigurationsmanagement ein sehr wichtiger Link. etcd ist ein hochverfügbarer, verteilter und konsistenter Schlüsselwert-Speichercontainer, der häufig in Szenarien wie verteilter Koordination, Serviceerkennung und Konfigurationsverwaltung verwendet wird. Golang ist eine kompilierte Sprache, die sich aufgrund ihrer effizienten Leistung und Parallelität zur besten Wahl für die Verwendung von etcd entwickelt hat. In diesem Artikel wird erläutert, wie Golang etcd verwendet.

  1. etcd installieren

Laden Sie die systemkonforme Version von der offiziellen Website https://github.com/etcd-io/etcd/ herunter. Veröffentlichungen. Führen Sie einfach etcd nach der Komprimierung aus. #? Die Verbindung zu etcd kann über die von etcd bereitgestellte clientv3-Bibliothek hergestellt werden. Das Folgende ist ein einfaches Beispiel für die Verbindung von etcd:

go get go.etcd.io/etcd/clientv3
  1. Schlüssel-Wert-Paare schreiben und lesen
    Als nächstes können wir clientv3 verwenden, um Put bereitzustellen und Get-Methoden zum Schreiben und Lesen von Schlüssel-Wert-Paaren. Die Put-Methode schreibt ein Schlüssel-Wert-Paar in etcd und die Get-Methode liest den Wert des Schlüssels aus etcd. Das Folgende ist ein vollständiges Beispiel:
  1. import (
        "context"
        "fmt"
        "go.etcd.io/etcd/clientv3"
    )
    
    func main() {
        config := clientv3.Config{
            Endpoints:   []string{"localhost:2379"}, // etcd endpoints
            DialTimeout: 5 * time.Second,
        }
        client, err := clientv3.New(config)
        if err != nil {
            // handle error
        }
        defer client.Close()
    }
  2. Indem wir das obige Beispiel ausführen, können wir ein Schlüssel-Wert-Paar in etcd schreiben und den Wert des Schlüssels aus etcd lesen.

Änderungen in Schlüssel-Wert-Paaren in etcd überwachen
  1. Eine weitere leistungsstarke Funktion von etcd ist, dass es eine Echtzeitüberwachung von Schlüssel-Wert-Paaren realisieren kann. Wertepaare über den Watch-Mechanismus überwachen. Sobald sich ein Schlüssel-Wert-Paar ändert, werden Sie sofort benachrichtigt. clientv3 stellt die Watch-Methode bereit, mit der wir Änderungen in einem bestimmten Schlüssel in etcd überwachen können. Das Folgende ist ein vollständiges Beispiel:
import (
    "context"
    "fmt"
    "go.etcd.io/etcd/clientv3"
)

func main() {
    // 连接etcd
    config := clientv3.Config{
        Endpoints:   []string{"localhost:2379"}, // etcd endpoints
        DialTimeout: 5 * time.Second,
    }
    client, err := clientv3.New(config)
    if err != nil {
        // handle error
    }
    defer client.Close()

    // 写入键值对
    _, err = client.Put(context.Background(), "hello", "world")
    if err != nil {
        // handle error
    }

    // 读取键值对
    resp, err := client.Get(context.Background(), "hello")
    if err != nil {
        // handle error
    }
    // 输出键的值
    for _, ev := range resp.Kvs {
        fmt.Printf("%s : %s
", ev.Key, ev.Value)
    }
}

In diesem Beispiel erstellen wir einen Kontext und verwenden die Watch-Methode, um den „Hallo“-Schlüssel in etcd zu überwachen. Wenn sich der Wert eines Schlüssels ändert, gibt die Watch-Methode eine Benachrichtigung zurück, die das geänderte Schlüssel-Wert-Paar enthält. Wir können diese Benachrichtigungen durchlaufen und den entsprechenden Inhalt ausgeben.

Zusammenfassung
  1. In diesem Artikel wird erläutert, wie Golang etcd verwendet, einschließlich der Verbindung von etcd, dem Schreiben und Lesen von Schlüssel-Wert-Paaren und der Überwachung von Schlüsselwerten Paare Einführung in Änderungen usw. etcd ist ein sehr praktischer verteilter Schlüsselwert-Speichercontainer. In Kombination mit den effizienten Leistungs- und Parallelitätsfunktionen von Golang kann eine sehr flexible und effiziente Konfigurationsverwaltung erreicht werden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie etcd in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Golang-Karte Alles löschenNächster Artikel:Golang-Karte Alles löschen