Hello, mod_perl users,
TL;DR: which Perl-based solution would you recommend for serving long-term
HTTP connections?
We use mod_perl for our project, and we would like to add
a component which needs long-term connections (think websockets or
server-side-events
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events).
We use mpm_prefork for the main site, so adding long-term connections
there is not feasible. So I am looking for alternatives. The logic
behind this application would probably not be overly complicated,
probably just forwarding pub/sub events from Redis or some other
message broker to HTTP clients or something like that.
I would expect to serve about 30-100k simultaneous connections,
not necessarily handled by a single host. The peak value of 10k connections
per host would be sufficient. I expect I will put haproxy or some other
load balancer in front of these servers, so for example SSL/TLS is not
strictly necessary.
Is mod_perl with mpm_worker suitable for this task? Or should I use
something AnyEvent-based, such as Twiggy (I don't know whether Twiggy
supports multiple processes/threads)? Or even something completely different?
Thanks in advance for any recommendations.
-Yenya
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
We all agree on the necessity of compromise. We just can't agree on
when it's necessary to compromise. --Larry Wall
TL;DR: which Perl-based solution would you recommend for serving long-term
HTTP connections?
We use mod_perl for our project, and we would like to add
a component which needs long-term connections (think websockets or
server-side-events
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events).
We use mpm_prefork for the main site, so adding long-term connections
there is not feasible. So I am looking for alternatives. The logic
behind this application would probably not be overly complicated,
probably just forwarding pub/sub events from Redis or some other
message broker to HTTP clients or something like that.
I would expect to serve about 30-100k simultaneous connections,
not necessarily handled by a single host. The peak value of 10k connections
per host would be sufficient. I expect I will put haproxy or some other
load balancer in front of these servers, so for example SSL/TLS is not
strictly necessary.
Is mod_perl with mpm_worker suitable for this task? Or should I use
something AnyEvent-based, such as Twiggy (I don't know whether Twiggy
supports multiple processes/threads)? Or even something completely different?
Thanks in advance for any recommendations.
-Yenya
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
We all agree on the necessity of compromise. We just can't agree on
when it's necessary to compromise. --Larry Wall