视频资源获取失败
你好,我是何小锋。到今天为止,基础篇和进阶篇我们就都学习完了,在这个过程中我一直在看大家的留言,知道你可能还有很多地方存在着疑问,今天这一讲我整理了一些关注度比较高的课后思考题答案,希望能给你带来帮助。
思考题:在 RPC 里面,我们是怎么实现请求跟响应关联的?
首先我们要弄清楚为什么要把请求与响应关联。这是因为在 RPC 调用过程中,调用端会向服务端发送请求消息,之后它还会收到服务端发送回来的响应消息,但这两个操作并不是同步进行的。在高并发的情况下,调用端可能会在某一时刻向服务端连续发送很多条消息之后,才会陆续收到服务端发送回来的各个响应消息,这时调用端需要一种手段来区分这些响应消息分别对应的是之前的哪条请求消息,所以我们说 RPC 在发送消息时要请求跟响应关联。
解决这个问题不难,只要调用端在收到响应消息之后,从响应消息中读取到一个标识,告诉调用端,这是哪条请求消息的响应消息就可以了。在这一讲中,你会发现我们设计的私有协议都会有消息 ID,这个消息 ID 的作用就是起到请求跟响应关联的作用。调用端为每一个消息生成一个唯一的消息 ID,它收到服务端发送回来的响应消息如果是同一消息 ID,那么调用端就可以认为,这条响应消息是之前那条请求消息的响应消息。

作者回复: 都能做,但最好在服务端,因为限流是对服务端的保护,如果在调用端做,不排除调用端使用不当的情况。
作者回复: 👍