Я установил простой сервер Nginx, который ведет журнал (в формате JSON), который затем передается в корзину S3 с помощью Apache Flume. Все, что делает сервер Nginx, это отвечает пикселем отслеживания веб-маяков и записывает в файл журнала. Пока все круто.
Однако было бы неплохо обработать еще пару этапов обработки на этом уровне конвейера:
Похоже, мне понадобится настраиваемый приемник Flume для преобразования параметров строки запроса и серверная часть в nginx для установки файла cookie и обновления базы данных. Использование нескольких систем здесь кажется очень неэффективным, особенно при оптимизации пропускной способности для сотен запросов в секунду.
Моей первой мыслью было использовать NodeJS, который мог бы справиться со всеми этими задачами (и даже заменить nginx?), Но мне не нравится, что он однопоточный (может быть, порождать дочерние рабочие?).
Затем я подумал, что, возможно, обработка должна происходить на уровне агента Flume, и программа Java могла бы справиться со всем (какое-либо преимущество в производительности здесь из-за того, что Flume написан на Java?)