Сервис рекомендующий друзей

Привет, Хабр!

У меня следующая задача, и я хочу узнать твое мнение на тему с какой стороны подходить к её решению.

Разрабатываем мобильный социальный сервис, в котором одна из основных механик это рекомендация юзерам других юзеров исходя из множества интересов и, например, географического положения юзеров, пола, возраста и т.п. — скорее всего не более 5 таких полей.

Задача заключается в том, чтобы динамически исходя из этих параметров подбирать пары или группы юзеров для чата. При этом пользователь может в любой момент сменить собеседника, аналогично chatroulette.

Интересуют возможные подходы с точки зрения архитектуры и алгоритмов / технологий.

Понятно что здесь будет использоваться некоторый алгоритм кластеризации/классификации, если мы хотим образовывать группы, либо какой-то простой алгоритм оптимизации, оптимизирующий «отличность» выбранного юзера от других юзеров, в случае с подбором пары.

Вопрос в том, как подойти к архитектуре такого сервиса? Как и в чём она будет отличаться для 1000 юзеров, для 100 000 юзеров и для 10 000 000 юзеров? На каких бы технологиях/языках вы стали бы воплощать бекенд, решающий данную задачу?
  • Вопрос задан
  • 3943 просмотра
Решения вопроса 1
unconnected
@unconnected
Без разницы на чем реализовывать — с каждым шагом на будете упираться в производительность запросов.
Т.е. нужно решить две задачи:
а) выборка по схеме данных за допустимый период
б) получение данных за допустимый период
Грубо так:
103: любой хранилище с индексами по полям участвующим в запросе (практически любой sql-сервер)
104: поля участвующий в запросе кодируются в ключи (денормализация или NoSQL)
105: скорость выборки — шардинг хранилища + многопоточность выборки + проблемы с соединениями, здесь уже ломать голову нужно какая у вас архитектура, какие технологии используете
106: скорее всего вы уже сами будете отвечать на такие вопросы :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pomeo
@pomeo
Непонятно только, вы видео чат собираетесь делать? тогда странно что вы про канал не упомянули, самое слабое место.
Мобильный в смысле в виде приложений или веб морда тоже планируется?
Ответ написан
Ваш ответ на вопрос

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

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