Re[14]: WA: 3 млн tcp соединений на одном сервере
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.08.20 14:03
Оценка:
Здравствуйте, netch80, Вы писали:

N>Проблемы начинаются, если делается синхронный вызов. Каждый такой вызов это:


Т.е., я правильно понимаю, что у каждого процесса ровно одна входная очередь, в которую попадают и запросы к этому процессу, и ответы на его собственные запросы, причем чтобы дождаться ответа на собственный запрос, процесс должен при поступлении каждого очередного сообщения прочесывать всю очередь, включая накопившиеся за время ожидания запросы к нему?

Ужос.

При такой архитектуре напрашивается мысль, что использование синхронных вызовов во всех промежуточных процессах — непозволительная роскошь. Т.е., процесс должен получить сообщение, что-то с ним сделать, куда-то переслать дальше, если сам не может обработать, и забыть навсегда. Отправка ответа изначальному инициатору запроса всегда должна быть заботой того процесса, который окончательно разрешил вопрос (самого последнего процесса в цепочке).

Хуже всего получаецца, если цепочка исполнения запроса разветвляется, и "последних" процессов несколько. Тогда кто-то должен свести результат воедино. Наверняка в ерланге есть какая-то идеома на этот счет, такая потребность должна возникать постоянно.

N>Спасибо на самом деле я уже за давностью не помню, это я предположил или кто-то из команды, но я запомнил и оно, по экспериментам, подтвердилось.


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