Мы используем WSO2 DAS 3.1.0 для получения событий от WSO2 API-Manager и отправки в базу данных.
Если мы посылаем в DAS, может быть, 70-100 событий в секунду в течение 4-5 часов, производительность медленно ухудшается, и он начинает «отставать». Сначала мы подозревали проблему с отправкой результирующих событий в нашу базу данных (у нас есть приемник событий, план выполнения (который суммирует события в секунду) и издатель в нашу базу данных), но теперь мы пришли к выводу, что это не так. Проблема в том, что база данных вообще без проблем справляется с нагрузкой.
Чтобы изолировать проблему, которую мы имеем, например. добавили издателя событий в файл из приемника входящих событий (до того, как мы обработаем какой-либо план выполнения), и мы видим, что когда производительность DAS ухудшается на несколько секунд, для этого издателя также нет вывода; следовательно, проблема заключается в обработке входящих событий (мы также добавили очередь между отправкой событий в нашу базу данных, чтобы гарантировать отсутствие обратного давления на обработку входящих событий).
Однако действительно странная часть заключается в том, что когда происходит такое поведение (ухудшается производительность обработки входящих событий в DAS), нет никакого способа выйти из этого, кроме перезапуска всего сервера (затем он снова начинает работать без проблем в течение нескольких часов). Даже если мы перестанем отправлять события на сервер на несколько дней, когда мы начинаем отправлять на сервер даже 1-2 события, между обработкой всех событий проходит несколько секунд (и, таким образом, сразу "отстает" от входящих событий). Как будто производительность при обработке входящих событий становится экспоненциально медленнее, пока мы не перезапустим DAS.
Был бы очень рад любым потенциальным подсказкам относительно того, где внести изменения, чтобы это поведение не происходило (очистка внутренних событий также не имеет никакого эффекта).