...
There are two broad approaches to accomplishing this. One is to minimize the state that needs to be shared by an approach like making Making CAS tickets self-validating.
Another is to share the CAS state across CAS instances, by sharing it in an RDBMS or an in-memory Java cache using a technology like Java Groups.
See also Clustering the CAS server