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