
因为项目经理对原来的项目的调用方式不满意,现在的调用方式是客户端通过 websocket 连接到我这个模块,其他模块每次通过消息队列请求我这个模块,我会把这个请求扔到队列里,当得到了客户端的回复我再通过 http 请求那个模块通知结果。
我与客户端通信的数据的协议规定我必须要处理完一个请求(也就是得到客户端的回复)才能发送他们发过来的下一个请求(所以我用了队列)。
他希望的是其他模块直接用 http 请求我这个模块,直到客户端回复我的时候直接把结果返回给那个模块,我跟他们说如果一个客户端请求多的话可能会阻塞很久,因为其他的请求要等待着上一个请求等到回复后才能继续发送,于是他也不满意这种方式。他说原来的方式对用户的体验不好,但是他又想不出什么方案来,就说是本来就是要你解决这个问题的,你应该要想办法解决。
所以我想来请教下大伙。
1 jones2000 2023-03-08 15:44:12 +08:00 合并消息处理, 请求一直往队列里面塞, 取的时候批量取, 然后批量执行,执行完了, 把批量结果返回过去。 |
2 ymy3232 2023-03-08 16:38:36 +08:00 明显是项目经理觉得慢 看你描述是慢在客户端 那就把问题推给客户端 不是你的问题不要帮别人想办法 |
3 sujin190 2023-03-08 17:01:27 +08:00 用了 websocket 又设计个同步的 request response 协议,简直坑死人 用户体验不好应该看效率阻塞在哪了和哪的错误率最高,别头痛医头脚痛医脚啊,项目经理希望改成 http 阻塞请求说不定是你这么等客户端返回再请求对应模块的时候,那个模块没办法及时返回给它那边的前端,然后延时高用户体验差呢 |
4 macscsbf OP |