Как лучше всего собирать сообщения из многих источников? - PullRequest
2 голосов
/ 03 мая 2011

Я работаю над планированием нового проекта, целью которого является сбор сообщений из многих источников в одном месте. В основном разные веб-сайты на разных серверах в одной сети должны сообщать некоторую информацию о действиях, предпринимаемых центральному регистратору. Я хочу, чтобы это была услуга, предлагаемая клиентам, так как каждый сайт просто отправляет сообщение центральному. Он не должен отвечать, что сообщение было фактически получено, и это нормально, если он отбрасывает сообщения под нагрузкой. Я бы предпочел, чтобы он мог ответить, что сообщение было получено и зарегистрировано по запросу клиента.

Я работаю с PHP на стороне сайта, и предпочел бы работать с ним также на стороне логирования. Кто-нибудь может дать мне представление о каком-либо протоколе или архитектуре, которые могли бы работать для этого?

Редактировать В качестве альтернативы, есть ли какие-нибудь библиотеки сообщений, которые кто-нибудь предложил бы? Я ищу любые хорошие ответы по протоколу или дизайну, от того, что БД может быть проще всего масштабировать, до какого сетевого протокола он может говорить. Будет ли UDP хорошо для чего-то подобного? Скорость отправки сообщений является наиболее важным фактором в этом дизайне.

Я работаю с одним сервером в настоящее время для входа в план.

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Я бы настоятельно рекомендую использовать для этого node.js .Подготовка и запуск сервера тривиальны (см. эту ссылку для примера сервера на основе UDP).Существуют модули базы данных, которые можно установить для узла ( npm отлично подходит для установки сторонних модулей), поскольку они не являются нативными для node.js.

Благодаря своей неблокирующей природе,Я почти уверен, что вы бы посрамили что-нибудь написанное на PHP с точки зрения производительности.

0 голосов
/ 07 мая 2011

Я смотрю на систему очередей сообщений как на середину, за которой регистратор собирает сообщения и обрабатывает их.

Некоторые из найденных мной вариантов - RabbitMQ, Kestrel и Beanstalkd.

...