加速 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
的线程自由继续。
我一直在使用在此 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
的线程自由继续。