2015-04-17 2 views
2

Я использую java-клиент paho mqttv3 для публикации сообщений одновременно около 2000 соединений путем создания потоков.mqtt exception Слишком много издает в архиве (32202)

Через некоторое время он начинает давать MqttException является folows:

reason----- 32202 
msg--------Too many publishes in progress 
cause------ null 

Хотя я поставил Qos 1.

Любой знает, почему я получаю такое исключение?

Заранее спасибо.

+0

Вы используете Pāho синхронный или асинхронный клиент? –

+0

Я также получаю сообщение об ошибке. Использование async-клиента с qos 2. – hYk

+0

Я получаю эту ошибку независимо от MqttClient или MqttAsyncClient – Clocker

ответ

0

Это может быть ограничение на стороне сервера или клиента.

Если это ограничение по серверу, вы должны посмотреть конкретную документацию о том, как настроить ее для обработки большего количества клиентов.

Если это клиентский лимит, то вместо MqttClient попробуйте MqttAsyncClient (неблокирующий) Java-клиент.

Вы можете начать смотреть на трех разных примерах here

Пример в которой используется API, который блокирует до завершения операции

SampleAsyncWait показывает, как использовать асинхронный API с официантами, которые не блокируют до тех пор, действие завершено

ОбразецAsyncCallBack показывает, как использовать асинхронный API, где события u sed, чтобы уведомить заявку, когда действие завершено

+0

Ссылка на репозиторий нарушена. – Lennert

+0

Исправить ссылку [здесь] (https://github.com/jacyzon/paho.mqtt.java/tree/master/org.eclipse.paho.sample.mqttv3app/src/main/java/org/eclipse/paho/sample/mqttv3app) –

2

Я только что встретил другой вопрос, ответ на который помог мне решить эту проблему.

Вы должны установить более высокое значение MaxInflight с помощью метода setMaxInflight() от объекта MqttConnectOptions перед подключением к брокеру.

Значение по умолчанию установлено значению 10.

Оригинальная тема: Send many publish message: Too many publishes in progress Error

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