2017-02-06 3 views
1

я работал с кодом образца Сообщения Hub найдено по этой ссылке: https://github.com/ibm-messaging/message-hub-samplesФорсирование сообщения Hub Кафка Java Console образца

В частности, я пытался увеличить пропускную способность производителя с Кафкой Пример консоли 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

у вас есть два основных варианта обработки результатов запроса продукции асинхронно

1) использовать перегруженный send с завершением обратного вызова аргумента, который будет вызван асинхронно: public Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback);

при использовании обратного вызова вы можете игнорировать будущее.

2) передайте Future в какой-либо другой поток, который вы создали, и проверите его для завершения, оставив поток, который называет send бесплатным для продолжения.

+0

Спасибо за ответ. Я буду реализовывать это. –

Смежные вопросы