Rumah > pembangunan bahagian belakang > Golang > Tidak dapat menyambung ke Confluence Kafka menggunakan kafka-go segmentio

Tidak dapat menyambung ke Confluence Kafka menggunakan kafka-go segmentio

王林
Lepaskan: 2024-02-06 08:48:04
ke hadapan
918 orang telah melayarinya

无法使用segmentio的kafka-go连接到Confluence Kafka

Kandungan soalan

Saya boleh menggunakan confluence cli untuk menyambung ke gugusan kafka confluence, tetapi tidak boleh menggunakan perpustakaan kafka-go segmentio. Saya mendapat ralat berikut.

with SASL: SASL handshake failed: EOF
Salin selepas log masuk

Ini adalah fungsi saya dalam go

package consumer

import (
    "context"
    "fmt"
    "log"
    "os"
    "time"

    "github.com/segmentio/kafka-go"
    "github.com/segmentio/kafka-go/sasl/plain"
)
func Consume(ctx context.Context) {
    // create a new logger that outputs to stdout
    // and has the `kafka reader` prefix
    l := log.New(os.Stdout, "kafka reader: ", 0)
    mechanism := plain.Mechanism{
        Username: "my-api-key",
        Password: "my-api-secret",
    }

    dialer := &kafka.Dialer{
        Timeout:       10 * time.Second,
        DualStack:     true,
        SASLMechanism: mechanism,
    }

    r := kafka.NewReader(kafka.ReaderConfig{
        Brokers: []string{brokerAddress}, // brokerAddress given in confluent cloud cluster settings. 
        Topic:   []string{"steps"}[0],
        // assign the logger to the reader
        Logger: l,
        Dialer: dialer,
    })
    for {
        // the `ReadMessage` method blocks until we receive the next event
        msg, err := r.ReadMessage(ctx)
        if err != nil {
            panic("could not read message " + err.Error())
        }
        // after receiving the message, log its value
        fmt.Println("received: ", string(msg.Value))
    }
}
Salin selepas log masuk

Saya cuba menjana kunci baharu, menggunakan nama pengguna dan kata laluan akaun saya, mengurangkan partition, tetapi tiada apa yang berjaya.


Jawapan betul


Nampaknya pelayan anda TLS 版本不被接受,您可以使用 MinVersion memaksa go-kafka untuk menerimanya:

dialer := &kafka.Dialer{
        Timeout:       10 * time.Second,
        DualStack:     true,
        SASLMechanism: mechanism,
        TLS: &tls.Config{
            MinVersion: tls.VersionTLS12,
        },
    }
Salin selepas log masuk

Atas ialah kandungan terperinci Tidak dapat menyambung ke Confluence Kafka menggunakan kafka-go segmentio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan