我试图安装我的 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
Run Code Online (Sandbox Code Playgroud)
在我的 kafkapublisher.go 文件中,我已经导入了 kafka 依赖项:
import (
"github.com/confluentinc/confluent-kafka-go/kafka"
"log"
)
Run Code Online (Sandbox Code Playgroud)
即使在我的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
)
Run Code Online (Sandbox Code Playgroud)
我遵循了这个文档: https: //docs.confluence.io/current/clients/go.html
当您构建镜像时,请使用-tags musl(对于 alpine linux,@see github.com/confluenceinc/confluence-kafka-go)和 activeCGO_ENABLED来激活 C 中的 lib,因为 Kafka Go 客户端基于 C 库 librdkafka
在 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
Run Code Online (Sandbox Code Playgroud)
注意: -tags musl:如果你想使用内置的 librdkafka -tagsdynamic :如果你想使用你自己的 librdkafka。
| 归档时间: |
|
| 查看次数: |
9685 次 |
| 最近记录: |