Yes, it is not rocket science. But with all things that contain the words cache 
and thread, it can be a bit complex:

1. We would store the SessionData in a znode
2. We'd give it a TTL to match the session timeout in Jetty
3. We need to properly handle exceptions where it timed out or some other issue 
occurred
4. Jetty has a session cache layer. We'd need to understand how that would 
interact with any timeout in ZK. If writes are not hitting ZK, then the TTL 
will not be updated.
5. We'd need to test how well ZK performs with node TTL updated dozens of times 
per second  (it is a restful app)
6. We'd like to prevent the same user logging in twice (two sessions). Since 
the znode is really nothing more than session id (path) and user id (data), but 
ZK doesn't give us a way to force the userId attribute to be unique, its not 
clear how to do that in a cluster safe way.

So I was hoping someone might have solved some of the above problems :-)

Cheers
Ari

On 2020/05/25 15:27:34, Jordan Zimmerman <[email protected]> wrote: 
> Not that I know of. It seems like it wouldn't be too hard to write. AFAICT 
> you need to implement this: 
> https://github.com/eclipse/jetty.project/blob/jetty-10.0.x/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionDataStore.java
>  
> <https://github.com/eclipse/jetty.project/blob/jetty-10.0.x/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionDataStore.java>
>  
> 
> > On May 25, 2020, at 4:39 AM, Aristedes Maniatis <[email protected]> 
> > wrote:
> > 
> > Has anyone implemented a SessionDataStore for Jetty to store session info 
> > from Jetty in Zookeeper?
> > 
> > https://www.eclipse.org/jetty/documentation/current/session-management.html
> > 
> > Stores exist for MongoDB, Hazelcast and a bunch of other things already.
> > 
> > 
> > Cheers
> > 
> > Ari
> > 
> 
> 

Reply via email to