最近在StackOverflow(https://stackoverflow.com/questions/55858352/kafkaconsumer-assignment-returns-empty)碰到的一个问题,即在consumer.poll(Duration.ofMillis(0))之后assignment()返回为空的问题,如下面这段代码所示:consumer.subscribe(Arrays.asList("test"));consumer.poll(Duration.ofMillis(0));// consumer.poll(0);Set assignment = consumer.assignment();有意思的是,如果是consumer.poll(0);则assignment不为空。之前我以为poll(long)被标记为“Deprecated”之后使用poll(Duration)是相同的效果,现在看来两者还是要有差别的。为什么poll(0)就能获取到consumer分配方案,而使用poll(Duration)就不能呢? 调研了一番之后发现原因如下:在poll(0)中consumer会一直阻塞直到它成功获取了所需的元数据信息,之后它才会发起fetch请求去获取数据。虽然poll可以指定
………………………………