1

我一直在使用此链接中的 Message Hub 示例代码:https ://github.com/ibm-messaging/message-hub-samples

特别是,我一直在尝试使用 Kafka Java 控制台示例来提高生产者的吞吐量。我注意到这段代码中的文档:

// Synchronously wait for a response from Message Hub / Kafka on every message produced. // For high throughput the future should be handled asynchronously. RecordMetadata recordMetadata = future.get(5000, TimeUnit.MILLISECONDS); producedMessages++;

我已经关闭了稍后在代码中发现的线程睡眠,这也有助于提高吞吐量,但我希望我能在这个块中异步实现未来得到一些帮助。提前致谢!

4

1 回答 1

2

您有两个基本选项可用于异步处理生产请求的结果

1)使用带有完成回调参数的重载send,它将被异步调用: public Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback);

如果使用回调,您可能会忽略未来。

2)将 传递Future给您创建的其他线程,并让它检查未来是否完成,同时让调用send自由的线程继续进行。

于 2017-02-07T10:23:12.957 回答