Я пытаюсь создать чат-сервер для своей социальной сети, и в настоящее время я придумал этот шаблон проектирования.
посмотрите на user_handler, это рабочий процесс, который создает несколько связанных пользовательских процессов и сохраняет идентификаторы этих процессов в таблице ets на основе запроса на вход.
Но моя проблема в том, что если с моего веб-сервера на мой user_handler поступает много одновременных запросов, то обработка этих сообщений будет медленной. правильно?
Например, прямо сейчас, если пользователь с идентификатором 2 отправляет сообщение пользователю 3, я звоню. user_handler:send_message(SenderId = 2, SendTo = 3, Message), тогда мой обработчик пользователя захватывает идентификатор процесса пользователя с идентификатором 2 и вызывает user:send_message(Pid, SendTo = 3, Message). Где user:send_message/3 получает идентификатор процесса пользователя 3, затем проверяет другие условия и, наконец, отправляет сообщение идентификатору процесса пользователя 3.
Ну, я не думаю, что это хорошая архитектура.
Поэтому любое предложение будет ценным.
Спасибо и извините за мой плохой английский.