With an ever increasing number of connected devices, e.g. mobiles, tablets and Internet of Things, the requirement of handling large number of concurrent requests in server applications becomes critical in many projects. Traditionally Java based server applications have been using blocking I/O, allocating one thread per concurrent request. This results in limited scalability and poor resilience capabilities, caused by drained thread pools and other fatal problems.
One key feature to solve these problems are the asynchronous I/O capabilities in the underlying operating systems, a.k.a non-blocking I/O. This has been supported by the Java platform since v1.4 back in 2002. Historically it has been complex to use and resulted in solutions locked into specific products. With the Servlet 3 specification and Spring Framework 4 this has become much easier to handle. The presentation will show how we can write scalable and resilient server applications that are fully portable between Servlet 3 compliant web-servers using Spring MVC.Ladda ner presentation