当我发送一条包含数字字符串的消息时,我在使用Kafka时遇到了一个奇怪的行为:
{
"test1": "1",
"test2": "9000000000000000",
"test3": "9999999999999999",
"test4": "10000000000000000"
}
当我在我的主题中生成这个消息时,Kafka根据值的不同将它们转换为Int或非Int。下面是在我的主题中生成后的结果:
{
"test1": "1",
"test2": "9000000000000000",
"test3": 9999999999999999,
"test4": 10000000000000000
}
test3和test4被转换为Int值,而不是保留为字符串。
我已经用C#客户端测试过了,也用了confluent web app。有什么方法可以避免这种自动转换吗?
1条答案
按热度按时间vkc1a9a21#
Kafka没有这样做,而你的序列化框架做了。例如,如果你有一个JSON模型,它将字段定义为Integer,而不是String,它可以为你解析和类型转换这些值。