Basically I have one master node that distributes tasks between worker nodes. Number of workers could change, that means that the workers could not be hard coded at the server side. Master submits a task to the queue and one of the workers takes this task, processes it and returns the result back. The most critical aspect is low latency. The typical process time on worker node is about 100-300 ms, this means that messaging system should not add significant delay to the process time.
Currently I'm looking at request-response JMS pattern. This means that master would submit the task to the shared queue, the worker would take the task from the queue and submit the result to another queue which is listened by master node. Master would correlate the response with request.
I'm afraid that JMS may bring latency to the system, which is not acceptable. Probably I should look at other solutions? Such as RabbitMQ, JGroups or ZooKeeper?
If JMS is suitable here, could you recommend the fastest JMS broker? Currently I'm looking at ActiveMQ
One more requirement for the solution is that it should be able to work in the cloud