[ 
https://issues.apache.org/jira/browse/GUACAMOLE-283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18061520#comment-18061520
 ] 

Prakash Kumar commented on GUACAMOLE-283:
-----------------------------------------

[~vnick] 

You're absolutely right, and I think your approach is well thought out. Trying 
to achieve HA through full synchronization between multiple guacd instances 
would be extremely complex to implement and maintain, so keeping it at the 
client level and infrastructure level is a much more practical path.

Our client leverl HA — we're running two instances of the Guacamole client 
behind a load balancer with sticky sessions, but using a single guacd instance. 
The HA logic lives in the client layer, and here's how we're handling the key 
pieces:

*Join Session* — When a connection is created, we store the session's unique 
UUID (which guacd uses for session sharing) in the database. When a user wants 
to join an active session, we fetch that UUID from the database and pass it to 
guacd to establish the shared session.

*Kill Session* — When an admin wants to terminate a session, we mark it as 
ended in the history table. A cron job running on the client then picks this up 
and disconnects any active sessions matching that record from the instance's 
memory.

This keeps things manageable without needing guacd to be aware of itself across 
multiple nodes. Happy to contribute this back to the community once it's 
cleaned up — will look into the contribution guidelines and set up the fork 
accordingly.

> HA in Guacamole
> ---------------
>
>                 Key: GUACAMOLE-283
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-283
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole-client, guacamole-server
>            Reporter: Thiago dos Santos Nunes
>            Priority: Minor
>
> A great feature for guacamole would be high availability both on the client 
> (mainly) and on the server.
> In the client the ideal would be to be able to at least be able to block by 
> the number of simultaneous connections even having an environment with 
> several vms or containers.
> I currently have an environment with 3 guacamole servers with Tomcat 8 
> running behind a HAPROXY. But I lose the block by simultaneous connection (I 
> charge my clients for simultaneous connection) and I can not give up having 
> more than one vm, because if one falls I lose all. It would also be great if 
> the user does not need to log in again if they go to another server (session 
> permanence). Today I work with hundreds of simultaneous users from different 
> places.
> It would also be very good to be able to separate the client from the server 
> and be able to work on HA on the server as well.
> My Environment:
> 3x Guacamole server and client: 0.9.12
> Database and Authentication: MySQL (another vm)
> File Server: SFTP (another vm)
> I alread commented this on:
> https://issues.apache.org/jira/browse/GUACAMOLE-189



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to