加速 Message Hub Kafka Java 控制台示例

Speeding up Message Hub Kafka Java Console sample

我一直在使用在此 link 中找到的 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++;

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

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

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

如果使用回调你可以忽略未来。

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