最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《如何在没有生产者的情况下创建kafka消息?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
问题内容我想创建一个基本的测试用例,无需引导生产者、消费者和 kafka 实例进行测试。我一直坚持以某种方式创建基本消息,但找不到我的错误。 这是 confluence-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消息?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!