Мы пытаемся реализовать веб-приложение с помощью Apache Storm
.
Приложение
получает огромную нагрузку рекламных запросов (100 TPS
- сто транзакций/сек),
производит несложные вычисления на них, а затем
сохраняет результат в базе данных NoSQL
с максимальной задержкой 10 мс.
Мы используем Cassandra
в качестве приемника его возможностей записи.
Однако мы уже превысили требование 8 ms
, мы находимся в 100ms
.
Мы постарались минимизировать размер буферов (Disruptor buffers) и хорошо сбалансировать топологию, используя параллелизм болтов.
Но мы все еще в 20ms
.
С 4 рабочими (8 ядер / 16 ГБ) мы находимся на уровне 20k TPS
, что все еще очень мало.
Есть ли предложения по оптимизации или
мы просто достигли пределов Apache Storm
(пределов Java
)?