我想创建一个基本的测试用例,而不需要引导生产者、消费者和 kafka 实例进行测试。我坚持以某种方式创建基本消息并且找不到我的错误。这是来自confluent-kafka-go sdk 的结构定义:
// Message represents a Kafka message
type Message struct {
TopicPartition TopicPartition
Value []byte
Key []byte
Timestamp time.Time
TimestampType TimestampType
Opaque interface{}
Headers []Header
}
我的基本消息创建如下所示。我已经验证了 topicPartition 结构和 validImageUploadMessageAsBytes 是有效的对象。
kafkaMessage := kafka.Message{
TopicPartition: topicPartition,
Value: validImageUploadMessageAsBytes,
Key: messageKey,
Headers: nil,
}
我还尝试了以下方法以确保它不会因为我在消息中提供的一些数据而失败:
emptyMessage := new(kafka.Message)
emptyMessage.TopicPartition = topicPartition
emptyMessage.Value = []byte("")
emptyMessage.Key = []byte("")
此示例产生与下图相同的输出
在使用 GoLand (2021.3.3) 调试它时,我看到了这个变量值