Transparently Clustering Spring
How do you scale a Spring application beyond a single node? How can you guarantee high-availability, eliminate single points of failure and make sure that you meet your customer SLAs?
Historically speaking, clustering an application is not easy: it takes a significant amount of time and usually requires you to rewrite parts of your application. It also usually perturbs your domain model and breaks object identity.
But does it have to be like that?
In this talk Jonas Bonér will walk you through how to cluster your Spring application, Transparently and Naturally, with zero changes to your application code, using the Terracotta Spring Runtime. The Terracotta Spring Runtime allows you to take an arbitrary Spring application, written for a single JVM, and cluster it to N nodes while preserving the exact same semantics.
For example:
- Life-cycle semantics and scope for Spring beans are preserved across the cluster - within the same logical ApplicationContext (singleton and session scoped beans).
- Spring's local event mechanism in the ApplicationContext is turned into high-performance asynchronous, distributed and reliable events (messages), but still local within the same logical ApplicationContext.
- Clustered beans can be exported using Spring JMX support, which guarantees a single point of management and coherent view of all the JMX data in the cluster.
- Spring WebFlow's web flows are transparently shared across the cluster.
- and more...
The session is backed up by several live demos.
Audience
Beginner
Speaker
Interesting Links