簡體   English   中英

Go 卡夫卡的未定義卡夫卡組件

[英]undefined kafka components for Go kafka

我試圖安裝我的 go 文件之一。 但是我遇到了這個錯誤

C:\mygoproject>go install kafkapublisher.go

\#command-line-arguments
.\kafkapublisher.go:8:65: undefined: kafka.Message

.\kafkapublisher.go:10:19: undefined: kafka.NewProducer

.\kafkapublisher.go:10:38: undefined: kafka.ConfigMap

.\kafkapublisher.go:17:31: undefined: kafka.Event

.\kafkapublisher.go:19:26: undefined: kafka.Message

在我的 kafkapublisher.go 文件中,我已經導入了 kafka 依賴項:

    import (
        "github.com/confluentinc/confluent-kafka-go/kafka"
        "log"
    )

甚至在我的go.mod文件上

    module mymodule
    
    go 1.12
    
    require (
        github.com/aws/aws-lambda-go v1.15.0
        github.com/confluentinc/confluent-kafka-go v1.3.0
    )

我遵循了這個文檔: https://docs.confluent.io/current/clients/go.html

截屏

我已經想通了這一點。 我安裝了 Confluent 的 Kafka Go Client。 說明在這里: https : //docs.confluent.io/current/clients/go.html#

盡管 Windows 不支持該庫,因此我不得不使用虛擬機 (Oracle VM Box) 來構建和運行我的代碼。

在安裝 Confluent 的 GO Kafka Client 之前,我還需要編譯和安裝 librdkafka: https : //github.com/confluentinc/confluent-kafka-go/blame/master/README.md#L133

謝謝。

顯然沒有導入依賴項,

如果您運行 go build 命令,它將下載必要的依賴項並編譯代碼等

嘗試運行go build ./...

尚未下載依賴項。

您可以使用go get下載軟件包。 或使用

  1. 去模組下載
  2. 保持整潔
  3. go mod vendor - 這將創建一個包含所需依賴項的供應商文件夾

當你構建你的鏡像時,active DOCKER_BUILDKIT=1 ,使用-tags musl和 active CGO_ENABLED來激活 C 中的 lib 因為 Kafka Go 客戶端是基於 C 庫 librdkafka

在生成文件中:

@DOCKER_BUILDKIT=1 docker build $(BUILD_OPTIONS) .

在 dockerfile 中:

FROM golang:1.16-alpine as builder

ARG GIT_TAG_NAME

RUN apk --no-cache update && \
apk --no-cache add git gcc libc-dev

# Kafka Go client is based on the C library librdkafka
ENV CGO_ENABLED 1
ENV GOFLAGS -mod=vendor
ENV GOOS=linux
ENV GOARCH=amd64

RUN export GO111MODULE=on

RUN go build -tags musl -ldflags "-s -w -X main.Version=$GIT_TAG_NAME" -o bin/main ./cmd/main

我面臨着同樣的問題。

Kafka Go 客戶端基於 C 庫。 因此,設置標志CGO_ENABLED=1將啟用 go 為 kafka 客戶端使用 C 庫。

希望它可以節省某人的時間。

1.CGO_ENABLED=1 go 構建 xxxx

  1. 不要使用 windows

至於原因,我認為這取決於一些 C 語言庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM