ВВ
Ситуация : Есть группа процессов, принимающих сообщения из топика kafka. Один процесс на каждую партицию, всего их, к примеру, 64. Сообщения мелкие, их много и требуется неким образом преобразовать каждое и отправить в другой топик kafka. В каждом сообщении есть числовой признак, по которому можно выделить обработку в отдельный процесс. Уникальных значений признака, к примеру, 20000, и они заранее не известны.
Вопрос : как лучше организовать процесс поиска и запуска обработчика по определённому признаку?
v1) Создать именованный процесс-балансировщик, в который будут стекаться все сообщения, и где будет проходить проверка процесса-обработчика, его spawn и фиксация Pid в ets табличке. Если процесс уже создан - просто посылаем ему сообщение на обработку.
v2) Регистрировать каждый процесс-обработчик под динамическим именем на основе признака через register(Name, Pid). Проверять, создан ли он, через whereis(Name). И делать это прямо в процессе , обрабатывающего партицию.
v3) gproc
как думаете?