Java – How scalable is Jetty


Greetings! I wrote a highly scalable HTTP event (long-polling) server in C/C++ using libevent. However, it's messy, hardly portable, and lets face it: it's C. Let alone that I've been having some major issues with the mysqlcpp connector (which is complete trash), and some minor issues with libevent (it could be because I'm using 2.0.1-alpha). The event-server is C/C++, and the actual backend is PHP-fpm that I hit if I need to (i.e. if there's a new event). All the proxy/cgi routing is done through nginx.

I'm debating just re-writing the whole thing (event server and backend) in Java – I like using PHP for the front-end. I've heard many good things about Jetty, but I'm wondering if anyone's had experience deploying real-world highly-concurrent applications working on the Jetty backend. If so, how does it stack up when compared to an HTTP libevent implentation, or equivalent Erlang and Python server libraries?

I'm not interested in apachebench benchmarks so please don't link them. I'm interested in concurrency and scalability.

Thank you for any insight.

Best Solution

We've used Jetty's long-polling for a while and have been pretty happy with it. We've never been close to 10K+ concurrent users as was demonstrated by Jetty developers though. However, the added overhead of 300-400 concurrent Cometd connections was hardly noticeable on our low-end servers. Another article explains clustering of Jetty and Cometd using Terracotta (which is another awesome piece of software).