I am working through the planning for a new project where the goal is to collect messages from many sources in one place. Basically different websites on different servers on the same network need to report some information on actions being taken to a central logger. I want this to be a service offered to the clients, in that each site just fires off a message to central. It does not need to respond that the message was actually recieved, and it is ok if it drops messages under load. I would prefer that it could response that the message was recieved and logged, if requested by the client.
I am working with PHP on the site side, and would prefer to work with it on the logging side as well. Can anyone give me insight into any protocol or architecture that might work for this?
Edit
Alternatively, are there any messaging libraries anyone would suggest? I am looking for any good answers on protocol or design, from what db might be easiest to scale, to what network protocol it could speak. Would UDP be good for something like this? Speed of message sending is the most important factor in this design.
I’m working with one server currently for the logging in the plan.
I’m looking towards a message queueing system as the middle, with the logger behind it collecting the messages and processing them.
Some of the choices I have found are RabbitMQ, Kestrel, and Beanstalkd.