Kafka是否有异步请求/响应Java API



我们宁愿在生产者上使用异步请求/响应

private class MyCallback implements ResponseCallback {
    public void response(Response r) {
        //handle failure or success.  If success, ack the upstream kafka
    }
}
producer.send(request, callback);

我唯一看到的是将producer..type设置为asynch,但呼叫只是一个异步请求,而无需等待任何响应...

producer.send(request);

不幸的是,这迫使我同步,这意味着在负载下,我在Kafka上等待的线程可能会开始减慢事情的速度,而当我只想在我继续发送请求的同时,我只想用一堆请求猛烈抨击Kafka。P>

谢谢院长

似乎在卡夫卡(Kafka)正在进行的工作中,会引入异步呼叫模式,请检查一下:消费者和生产者

目前,您可以使用标准可召唤/执行者,并使用Google Guava的出色聆听方式向他们添加回调。您也可以通过Netflix探索Hystrix,以获取更多(复杂而灵活的)呼叫模式。

kafka添加了带有回调的异步发送。请参阅此处的文档。

Producer.Send(ProducerRecord Record,回调回调)

异步将记录发送到一个主题,并在确认发送后调用提供的回调。 发送是异步的,一旦记录存储在等待发送的记录的缓冲区中,此方法将立即返回。这允许并行发送许多记录,而无需阻止每次响应。

最新更新