Heim > Backend-Entwicklung > Golang > Interaktion zwischen Golang-Funktionen und verteilten Datenbanken in verteilten Systemen

Interaktion zwischen Golang-Funktionen und verteilten Datenbanken in verteilten Systemen

王林
Freigeben: 2024-04-19 15:06:01
Original
702 Leute haben es durchsucht

In einem verteilten System können Go-Funktionen mit verteilten Datenbanken interagieren. Die spezifischen Schritte sind wie folgt: Installieren Sie die erforderlichen Abhängigkeiten. Verwenden Sie die Funktion spanner.NewClient, um eine Verbindung zur Datenbank herzustellen. Verwenden Sie die Query-Methode, um die Abfrage auszuführen und den Iterator abzurufen. Verwenden Sie die Do-Methode, um die Abfrageergebnisse zu durchlaufen und die Daten zu verarbeiten. Nachdem die Abfrage abgeschlossen ist, verwenden Sie die Close-Methode, um die Verbindung zu schließen.

分布式系统中 Golang 函数与分布式数据库的交互

Interaktion zwischen Go-Funktionen und verteilten Datenbanken in verteilten Systemen

In verteilten Systemen ist es eine häufige Anforderung, dass Go-Funktionen mit verteilten Datenbanken interagieren. Dieser Artikel führt Sie durch die Verwendung von Go-Code, um eine Verbindung zu einer verteilten Datenbank herzustellen und diese abzufragen.

Abhängigkeiten installieren

Der erste Schritt besteht darin, die erforderlichen Abhängigkeiten zu installieren:

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/spanner"
)
Nach dem Login kopieren

Mit der Datenbank verbinden

Um eine Verbindung zur Datenbank herzustellen, verwenden Sie die Funktion spanner.NewClient: spanner.NewClient 函数:

client, err := spanner.NewClient(context.Background(), "projects/my-project", "instances/my-instance", "databases/my-database")
if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

执行查询

要执行查询,请使用 Query 方法:

stmt := spanner.Statement{SQL: `SELECT * FROM Singers`}
iter := client.Single().Query(context.Background(), stmt)
defer iter.Stop()
Nach dem Login kopieren

iter 是一个迭代器,它将遍历查询结果。

处理结果

要处理结果,请使用 Do

for {
    row, err := iter.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    var singerId int64
    var firstName string
    var lastName string
    if err := row.ColumnByName("SingerId", &singerId); err != nil {
        log.Fatal(err)
    }
    if err := row.ColumnByName("FirstName", &firstName); err != nil {
        log.Fatal(err)
    }
    if err := row.ColumnByName("LastName", &lastName); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%d %s %s\n", singerId, firstName, lastName)
}
Nach dem Login kopieren

Führen Sie die aus query

Um eine Abfrage auszuführen, verwenden Sie die Methode Query:

client.Close()
Nach dem Login kopieren

iter ist ein Iterator, der die Abfrageergebnisse iteriert.

Ergebnisse verarbeiten

Um Ergebnisse zu verarbeiten, verwenden Sie bitte die Methode Do: 🎜
package main

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/spanner"
)

func main() {
    client, err := spanner.NewClient(context.Background(), "projects/my-project", "instances/my-instance", "databases/my-database")
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()

    stmt := spanner.Statement{SQL: `SELECT * FROM Singers`}
    iter := client.Single().Query(context.Background(), stmt)
    defer iter.Stop()

    for {
        row, err := iter.Next()
        if err == iterator.Done {
            break
        }
        if err != nil {
            log.Fatal(err)
        }
        var singerId int64
        var firstName string
        var lastName string
        if err := row.ColumnByName("SingerId", &singerId); err != nil {
            log.Fatal(err)
        }
        if err := row.ColumnByName("FirstName", &firstName); err != nil {
            log.Fatal(err)
        }
        if err := row.ColumnByName("LastName", &lastName); err != nil {
            log.Fatal(err)
        }
        fmt.Printf("%d %s %s\n", singerId, firstName, lastName)
    }
}
Nach dem Login kopieren
🎜Verbindung schließen 🎜🎜Nachdem die Abfrage abgeschlossen ist, schließen Sie bitte die Verbindung zur Datenbank: 🎜rrreee🎜Aktueller Fall 🎜🎜Das Folgende ist ein vollständiges Go-Codebeispiel, das zeigt, wie man eine Verbindung zu einer Cloud Spanner-Datenbank herstellt und Abfragen ausführt: 🎜rrreee

Das obige ist der detaillierte Inhalt vonInteraktion zwischen Golang-Funktionen und verteilten Datenbanken in verteilten Systemen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage