Я пытаюсь развернуть Йельский центральный сервер аутентификации (CAS), и я хотел бы кластеризовать его для избыточности, потому что это критически важный элемент инфраструктуры. CAS требует, чтобы сеанс реплицировался, потому что после того, как пользователь входит в приложение A и переходит к приложению B, которое участвует в домене единого входа, приложение B отправляет запрос в CAS, чтобы определить, есть ли у пользователя активный «билет» , Поскольку нет устройства, которое указывало бы приложению B, к какому узлу оно должно обратиться к себе для проверки билета, все активные билеты в одном узле должны быть реплицированы на все узлы в кластере. Другими словами, прилипание сеанса здесь не является решением, поскольку приложение B при проверке заявки в файле cookie пользователя не знает идентификатор сеанса исходного сеанса в приложении A, во время которого пользователь вошел в систему.
Таким образом, CAS требует, чтобы сеанс реплицировался на все узлы. Требование о том, что сеть поддерживает многоадресную рассылку, добавляет нетривиальные издержки и делает этот подход более сложным для развертывания. Я проверил этот проект на Google Code:
http://code.google.com/p/memcached-session-manager
, который кажется очень полезным и простым в развертывании (по крайней мере, в ОС Linux), но, к сожалению, обеспечивает только восстановление после отказа сеанса и не является решением для репликации сеанса.