整体架构
1、红色代表进程,绿色代表线程。
2、每个浏览器访问远程桌面的时候,都会创建两个线程,一个connection_io线程,一个user线程。
3、第一个访问某台远程桌面的人将会默认视为这个远程桌面的拥有者,就会创建最里面的那个小红框子进程,后续的user线程都是这个小红框进程创建的,前提是访问同一台远程桌面,用户每访问一个新的远程桌面(从未被连接过的,断开连接也算未连接)就会创建一个小红框进程。
4、connection_io线程只负责接收转发数据,中转站,没有逻辑处理。
5、user线程是实际处理事务的线程,里面拥有各种处理函数,负责与远程桌面连接,支持协议有很多:SSH、VNC等。
6、Tomcat里面的web应用和外面的Guacd整体可以视为一个Guacamole Server,不过可以安装在不同服务器上面。
7、Guacd是守护进程。
8、上面只是举例了两个用户同时访问同一个远程桌面的例子。