1) Is it possible ?
Maybe. It depends exactly what you want to do.
2) Does it involve websocket-session replication? if so, are there any guides on how to do that?
Like HTTP, WebSocket is a stateless protocol.
Unlike HTTP, WebSocket has no (that I am aware of) standard mechanism for session management. This makes fail-over tricky.
You can (with JSR356) link the HTTP session to the WebSocket session. The main issue is that unless there are HTTP requests to the session, the session will expire so you either need a long timeout or you need to be sure other requests will maintain the session.
If you store data in the HTTP session rather than the WebSocket session, Tomcat's standard session clustering mechanisms will provide session replication.
Another issue is the load-balancer. I'm not sure of the state of WebSocket support in the usual suspects for load-balancing. I took a quick look at httpd's WebSocket proxy support but it appeared to be based on the invalid assumption that all WebSocket endpoints would be under a single URL e.g. http://host:port/context/websockets/...
and non-WebSocket requests.