kafak是我们工作中常用的消息组件,今天在跟合作方联调的时候被告知上游没有准备好消息数据,没有办法从依赖方拿到消息但是我们还又想测试自己写的消息消费的代码,怎么办呢?常规的做法就是把消息消费的代码抽离出来包装成一个公共方法,提供一个Controller直接构造好参数调用一下验证。或者写单元测试,都可以达到咱们的目的。
但是总感觉想通过kafka进行验证代码逻辑,有么有好的办法呢,答案肯定是有的,就是使用KafkaTool模拟生产者发送消息,进行消费。今天在操作的时候走了一些弯路在网上也查了一下相关文档,结果有很多不是很好,遂记录下来供大家参考。
第一步:安装Kafka Tool
这里就不对描述了。我直接贴安装完毕的图。
第二步:配置
新建连接,配置集群名称,依赖的zk的配置,生产者连接。其中集群命名随便起自己能懂就行,ZK的话需要本地提前安装好,Kafka的集群配置就是生产者的broker。如下图顺序:
第三步:准备、发送
配置完毕之后,准备阶段,这里需要准备2项事项。
第一:找到生产者要发送的topic
找到生产者要发送的topic,任意选择一个分区都没关系。选择右边的data栏,点击那个“+”号就出现两个message类型,你是JSON类型的消息的话就选择第二个。
第二:选择要发送的消息的方式
咱们选择了第二个消息类型,注意我红色框框起来的部分,消息格式为“key,value”,今天就在这里除了一些问题阻塞了点时间。我这边给一个demo(注意value进行json的压缩):
key,{"eventName":"工变化","eventType":"***pleted","tenant":"BW","payloadData":{"projectOrderId":"","orderId":"5180218000008","cameraStatus":"0","statusName":"OFFLINE"},"sendTime":"2023-03-15 11:18:26"}
填写完咱们的消息之后点击“add”,即可发送消息出去。结果对话框意思是是否需要在此发送,选择“Yes”的话就留在原对话框,内容没有清除。选择“No”的话就直接退出该消息添加页面,大家视情况选择。
希望可以帮助大家少走弯路。