我正在为我的客户端到服务器应用程序创建一个登录服务器.
基本上有5台服务器,所有这些服务器都连接到一台登录服务器.
客户端可以连接到这5个服务器中的任何一个,但需要使用用户名和密码进行身份验证.身份验证应该在登录服务器中完成,登录服务器应该返回应该将答案返回给客户端的实际服务器的答案.
就像那样:
客户端 - >服务器 - >登录服务器 - >服务器 - >客户端(响应代码)
现在,我使用的是Netty,它是NIO,它不是每个客户端的线程.现在,要通过NIO进行身份验证,我们必须等待从登录服务器到达的响应,这可能需要一段时间并延迟其他想要登录的客户端,实际上您不能只是等待NIO的回答,就像那样.所以我想到了如何让它发挥作用的想法.我的想法是在不同的线程上运行请求并使用onResponse(String key, int responseCode)方法生成事件,然后将客户端的通道放在带有生成密钥的映射中,这样我们就可以知道响应属于谁.因此,当我们进行身份验证时,我们会发送密钥和用户的数据.
但我觉得这是一种糟糕的方式,并且有一种更有效的方法来做到这一点.有任何想法吗?