Браузер не даёт сохранять черновики: после перезагрузки проект пропадёт. Кнопка «Ссылка» сохранит схему в адресе.
Ландшафт систем (C1)
Добавьте свои системы, внешние системы и людей — кнопками сверху.
Протяните связь от точки на краю блока к другому блоку и опишите, что она делает.
Двойной клик по своей системе — её контейнеры (C2): сервисы, базы, топики.
Как собрать систему
Добавьте узлы кнопками над холстом.
Протяните связь от кружка справа у узла к другому узлу — так задаётся, кто кого вызывает.
Выберите узел или связь: справа откроются настройки с реальными свойствами Spring и значениями по умолчанию.
Значение можно ввести точно в поле рядом с ползунком; двойной клик по ползунку возвращает значение по умолчанию.
Delete удаляет выделенное.
Либо начните с готовой схемы — «Пример» в меню «Ещё».
запросуспешный ответошибкаKafka, ответа нетполоса внизу узла — загрузка его предела, жёлтая и красная — бедатолщина — поток · цифра на связи — порядок вызова
Числа по умолчанию: задай поток клиентов и время ответа — тогда модель скажет правду. Пока красное — заметки.
100%
загрузка самого занятого местадоля ошибок100% — предел
история копится…
Что видят клиенты
Почему так
Релизы
○ без живых обновлений
Обозначения и допущения модели
λ (лямбда)
входящий поток: запросов или сообщений в секунду
μ (мю)
пропускная способность: сколько в секунду может обработать узел или пул
ρ (ро)
загрузка = λ / μ. Около 85% время ответа начинает резко расти, от 100% очередь растёт без предела
L
сколько запросов сейчас ждёт в очереди
W_cpu
своя работа приложения на процессоре, без ожидания зависимостей
Занятость потока
сколько миллисекунд один запрос держит поток: своя работа плюс блокирующие ожидания
Contention
во сколько раз растягивается своя работа, когда считающих потоков больше, чем ядер
Пул
ограниченное число соединений: HikariCP к базе, соединения HTTP-клиента
Lag
сколько сообщений в топике ещё не прочитала consumer group
p95
95% запросов получили ответ быстрее этого времени
Модель потоковая: считает средние величины, а разброс добавляет режим «Пром». Реальная система хуже на хвостах.
Время ответа считается распределённым экспоненциально, отсюда доля опозданий e^(−таймаут/ответ).
Синхронные вызовы идут по порядку, их ожидания складываются — если у приложения не включён переключатель «Параллельно» (тогда ждём самый долгий вызов, а не сумму).
База и внешние сервисы не замедляются от нагрузки: их время задаёшь сам. Узким местом становится пул.
Каждая связь из топика — отдельная consumer group и получает все сообщения.