我想搜索kafka主题中的特定消息,
我发现的唯一解决方案是使用bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning |grep 'world\|hello'
interface myOrder {
one?: number;
two?: number;
three?: number;
four?: number;
}
let obj: myOrder = {"two": 2}
// add property "one".
obj.one = 1337; // evals: {"two":2, "one":1337}
// desired result {"one":1337, "two":2}
obj.four = 4;
let format = ({one,two,three,four}: myOrder) : myOrder => {
let result = { one,two,three,four }
Object.keys(result).forEach(key => result[key] === undefined ? delete result[key] : '');
return result
}
console.log(format(obj))
// returns { one: 1337, two: 2, four: 4 }
答案 0 :(得分:2)
有没有一种有效的方法?
如果没有消息键,则不会。
如果这样做,则可以计算Murmur2哈希并找到分区号,然后仅扫描该分区号,仍然使用--partition
有没有一种方法可以限制使用者特定的偏移量,即从头开始读取,直到到达特定的偏移量?
您可以给--max-messages
如果您不想始终从头开始,请添加--group
并继续使用max messages参数运行相同的命令。这将允许使用相同的使用者组,并在完成后提交偏移量
您还可以手动提交偏移量,以从使用kafka-consumer-groups
命令开始
答案 1 :(得分:-3)
有没有一种有效的方法?
是的。您的解决方案是快速而肮脏的解决方案。如果要过滤数据,请使用Streams API并在另一个主题上编写过滤后的信息。 https://kafka.apache.org/documentation/streams/