我认为您的问题出在auto.offset.reset属性上。当新使用者从分区读取并且没有先前的已提交偏移量时,将使用auto.offset.reset属性来确定起始偏移量。如果将其设置为“最大”(默认),则从最新(最后)消息开始阅读。如果将其设置为“最小”,则会收到第一条可用消息。
因此添加:
properties.put("auto.offset.reset", "smallest");
然后再试一次。
“最小”和“最大”在不久前已被弃用。您现在应该使用“最早”或“最新”。有任何疑问,请检查文档