В настоящее время я разрабатываю с моей командой систему, которая организует большое количество контейнеров в марафоне. Нам нужно получить текущий статус приложений в Marathon и иметь здесь два варианта:Производительность API мезосферы Marathon
- Опрос списка задач через API. Возможно, будут использованы ресурсы API
GET /v2/apps/
иGET /v2/apps/{app_id}
. - Получать события в реальном времени с автобуса событий.
Ну, второй вариант кажется более оптимальным, но в любом случае я хотел бы знать, насколько результативным является API Marathon.
Сколько груза может взять марафон? Может ли он обрабатывать, скажем, 1K запросов в секунду?
PS: Мы хотим доставить обновления статуса в пользовательский интерфейс. Поскольку мы можем запускать и останавливать приложения, этот статус имеет динамический характер. Большинство приложений работают только на 1-2 минуты, однако некоторые могут работать до тех пор, пока это требуется, если не остановлено.
Какие запросы? Если вы заинтересованы в получении (не изменяющемся) состоянии, и вы можете предположить, что это состояние не изменяется в течение некоторого интервала (или эти изменения могут быть проигнорированы), вы можете установить марафон за прокси. Если у вас много приложений «GET/v2/apps» может достигать 1 секунды. – janisz
В настоящее время я говорю о получении статуса. Фактически, мы хотим доставить обновления состояния в пользовательский интерфейс. Но у нас есть два типа задач марафона: длинные и те, которые могут выполняться, например. минута. Таким образом, государство могло обновляться довольно часто. – Pavel
Как обычно это зависит. Если вы не используете плагин Auth и имеете небольшое количество приложений/групп/задач, то марафон может справиться с этим. Помните, что марафон сохраняет состояние в zookeeper, где хранится каждое приложение/задача/группа, так как ZK может справиться с этим. Marathon будет работать (+ лидер имеет внутренний кеш, поэтому чтение должно быть быстрым). – janisz