看啥推荐读物
apache kafka大数据技术分享公众号。推送各种Kafka使用心得、实战攻略、会议PPT、技术博文等。Kafka博客:https://www.cnblogs.com/huxi2b/
今天看啥  ›  专栏  ›  大数据Kafka技术分享

consumer中poll(0)与poll(Duration.ZERO)的区别

大数据Kafka技术分享  · 公众号  ·  · 2019-04-26 12:11
最近在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可以指定 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照