我有一个问题困扰好久了,一直不知道有什么比较好的方式解决,还请各位大神多指点一下。
假设有客户端A,服务端B,服务端C三个程序。服务端B主要通过Http请求为客户端A提供数据。但是某些数据的提供又需要去服务端C获取,服务端B和服务端C的通信不是同步的。
那么问题来了,当A向B发起请求的时候,B收到A的请求之后,必须去C获取数据,当收到C回发的数据的时候,B如何找到A发过来的请求,并把数据回发给A呢??
还请各位大神指点一下,真的不知道怎么处理比较好?谢谢各位了!
如果服务的处理时间不长,B,C之间的异步可以采用轮询或事件触发的形式获取结果
如果长的话,HTTP的超时就限制了,一般一个请求中完成不了,那么需要在A B上加入会话的暂存信息,由A再次发起会话获取结果
B,C之间是采用Socket类的长连接方式。你所谓的轮询,是B收到A请求的时候,并且向C发出请求之后,阻塞当前请求线程,不断去轮询C是否返回了结果吗?
嗯,我指的是可以在一个请求中完成的处理,不是指分多个请求的处理。
@凌风有约: 一个请求中完成,不断去轮询C是否返回了结果是个方法