По умолчанию буфер событийной шины содержит 1000 событий на одного потребителя, и ограничение можно изменить.
Это означает, что «медленный» потребитель может подождать еще 1000 сообщений, прежде чем новые входящие сообщения будут отброшены. Я думаю, что это очень хорошо, и, следовательно, EB можно считать довольно безопасным и без потерь.
Когда сообщения начинают сбрасываться, вам следует увеличить вашу медленную вертикалку.
Обычно вероятность потери сообщения вне шины событий vert.x намного больше, чем между узлами кластера. Любое внешнее соединение inte rnet не так стабильно по сравнению с локальными соединениями вашей "частной" сети.
Если потребитель по какой-либо причине недоступен, vert.x может уведомить о доставке сообщения:
vertx.eventBus().request( 'some.addr', 'some payload' ){ AsyncResult ar ->
if( ar.succeded() )
println 'ok'
else
println "Error : ${ar.cause()}"
}
В случае неудачной доставки из-за отсутствия клиента, вы получите соответствующее исключение