@Serjio-Grig
Тот самый никто (=

Кто подскажет ответ по ряду вопросов?

Всем привет. Хотелось бы проконсультироваться по ряду вопросов.

Имеется некий проект, построенный на микросервисной архитектуре.
Каждый микросервис имеет под собой два сервера - один для его работы, а второй для его базы данных.

Работа связана с геолокацией - обмен геоданными в режиме реального времени.

1. Целесообразно ли вводить "кэширование" тех пользователей, что в сети, на отдельном микросервисе, удаляя тех, кто отключился от сокет-серверов? Кэширование - просто хранение пользователей как JSON.

2. Отдача маркеров остальных пользователей одному из них происходит только если регистрируется изменение координат или границ карты. Для вычисления тех, что попадают используется формула (mp.B.X-mp.A.X) * (mark.Y-mp.A.Y) - (mp.B.Y - mp.A.Y) * (mark.X-mp.A.X).
Следовательно, пользователи "прогоняются" в цикле и отправляются тем, у кого они попадают. Но если будет тот же 1 млн пользователей в сети, я думаю, что такими темпами сервер скоро откинет копыта. Как можно улучшить?
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 1
angrySCV
@angrySCV
machine learning, programming, startuping
для улучшения поиска коллизий полно алгоритмов, обычно они ориентированны на то чтоб "ПОЛЕ" разделить на сектора, и искать коллизии только внутри точек с общими секторами.
в рамках микросервисной архитектуры каждый "микросервис" может обслуживать свой небольшой сектор.
ваша задача найти выгодную схему нарезания на сектора, предположу что нужно будет использовать алгоритм хэширования (разделения на сектора) с двумя переменными такие как (размер и расположение сектора и его средняя загрузка, чтоб в среднем была равная загрузка секторов на обработку данных), наилучшую формулу вам нужно будет найти опытным путем.
есть само собой и другие подходы.
не вижу какой-то необходимости что-то с пользователями кэшировать. Лучше обеспечте локальность данных, тоесть размещайте данные (БД) в том же самом месте где их и обрабатывайте, это главное правило для масштабируемой и производительной архитектуры построенной на микросервисах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы