我正在构建一个由网关(服务器A)和关注者(服务器B)组成的系统。当客户端向服务器A发送请求时,服务器A会将请求转发给服务器B.我希望服务器B直接将响应发送给客户端,而不会打扰服务器A.我基本上将服务器A用作网关。
你认为这是一个很好的编程习惯吗?
答案 0 :(得分:1)
除了有关您的通信协议的问题之外,我还看到了一个基本问题:服务器B将如何了解您的客户端。服务器A知道,因为它与它联系。在查询响应方法中,客户端等待服务器A响应。服务器A知道客户端,因为它收到了客户端的请求。客户端知道等待A的响应,因为它首先联系了它。 B对客户端一无所知,只知道服务器A.虽然服务器A理论上可以将有关客户端的信息发送给B,但B现在必须能够连接到客户端才能发回信息。
更好的设计是让服务器A双向处理通信,并使用服务器B和其他任何方式来处理工作。如果您要处理单个服务器A的系统很大,那么您可以引入负载均衡器来将流量定向到多个服务器A。