Transparently Clustered 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 forthcoming 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. It also drops in a custom implementation of Spring AOP which improves its performance significantly (even when running on a single node).
The session is backed up by live demos, showing for example:
- how to make Spring Bean's lifecycles and state mean the same thing on a cluster as on a single node (e.g. clustered, but local to the same ApplicationContext)
- how to turn Spring's ApplicationContext Events into distributed events (but still local within the same ApplicationContext)
- how to avoid using regular messaging and simplify the programming model by:
- turning arbitrary method invocations into asynchronous distributed events
- use a regular java.util.List as a message queue
- etc.
Date and Time
JavaPolis Quickies
Speaker
Related Links