I'm interested in open source messaging technologies and / or distributed caches that satisfy the following requirements.
- Multiple Weighted Java Web Application Instances (possibly on Amazon EC2)
- Ability to scale the number of instances over time to scale.
- When a request comes with an FOO identifier, the event is cached in memory for a certain period of time.
- The length of time that the event is cached is indicated in the request payload and varies between requests.
- The length of time is relatively short (of the order of minutes).
- Persistence is not required. In the rare case when something happens dramatically and the server needs to be rebooted, it’s good for him to forget about past events.
- Request information should apply to all server instances.
- Information dissemination should not have a significant impact on server performance, and especially delayed responses. It must be asynchronous from request processing. However, it must be fast enough and scaled for a large number of requests.
- This is normal if different server instances are not synchronized. That is, it is acceptable that for a short period of time (of the order of seconds) the server 2 instance does not know that the FOO occurred on the server 1 instance until this information is distributed to it.
. - / , , .
EDIT , , . , MQ JSR-107 . , , .