Геосервер; Ожидается не менее 50.000 пользователей в моем веб-приложении за один уик-энд. Как подготовиться?

#postgresql #leaflet #mapbox #openlayers-3 #geoserver

#postgresql #брошюра #mapbox #openlayers-3 #геосервер

Вопрос:

Мое веб-приложение состоит из интерактивной карты (mapbox / openlayers3 / leaflet), на которой отображаются точки. Веб-приложение будет иметь две функции:

  • Представление, отображающее данные в реальном времени
  • Представление, которое можно фильтровать по определенным атрибутам

Наибольший трафик в этом веб-приложении будет составлять около 42 запросов каждые 30 секунд. В ответ на это сервер ответит в зависимости от того, является ли запрос WMS или WFS. В случае WFS он отправит около 800 небольших ( /- 5 столбцов, включая широту / lng) функций по каждому запросу. В случае WMS он будет отображать maptiles на основе максимум 150 000 точек с пользовательским SLD. Я хочу реализовать перечисленные выше функции и обеспечить оптимальную производительность приложения. Данные размещаются в удаленной базе данных postgress, Geoserver предоставит службы WMS / WFS для отправки изображений / данных клиенту.

Я планировал использовать WFS-сервис для первого просмотра, поскольку он только визуализирует данные в реальном времени. Это означает, что приложение будет проверять удаленную базу данных каждые 30 секунд на наличие изменений, если в базе данных появятся новые точки, они будут отображаться. Я подумал, что WFS вызовет меньшую нагрузку на сервер, поскольку ему не нужно отображать изображения. Каждые 30 секунд будет 40 новых максимальных точек. Чтобы проверить наличие новых функций, я хочу выполнить GetFeature с maxFeature=’1′ от клиента и проверить общий ключ, который отправляется сервером.

Для представления, в котором будут отображаться отфильтрованные данные, я хочу использовать WMS-сервис, поскольку он, вероятно, будет отображать / — 150 000 баллов за запрос. Итак, я решил, что WMS будет работать лучше, я не знаю, можно ли использовать geowebcache, поскольку набор данных будет постоянно меняться. Также я хочу использовать пользовательский SLD для создания тепловой карты точек, поэтому я не буду отображать фактические точки. Пример ответа SLD тепловой карты -> user30184 на это: https://gis.stackexchange.com/questions/102563/heat-map-density-map-from-dynamic-points-table-in-mapserver-geoserver вопрос.

Каковы будут узкие места в моем решении, удаленный сервер БД, геосервер или оба? Какие спецификации понадобятся моему серверу для правильной обработки этого?

Комментарии:

1. Мне только что пришло в голову, что я мог бы использовать плагин для генерации тепловой карты на стороне клиента, чтобы уменьшить нагрузку на сервер.