如何创建没有生产者的kafka消息?
How to create a kafka message without producer?
我想创建一个基本测试用例,而无需引导生产者、消费者和 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) 调试测试时,我看到了这个变量值
代码运行正常,只是IDE GoLand (2021.3.3)
显示问题
我想创建一个基本测试用例,而无需引导生产者、消费者和 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) 调试测试时,我看到了这个变量值
代码运行正常,只是IDE GoLand (2021.3.3)
显示问题