采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,请教一个面试题: 我们RPC调用时,比如a服务中的一个方法里有调用b服务提供的接口,他们之间通过长链接进行通信调用,如果有10个线程同时通过a服务的方法调用b服务提供的接口,那么b服务在处理完逻辑之后会有10个响应返回给a服务,那么a服务是怎么知道这10个响应与刚开始那10个请求给一一对应起来的呢?比如第9个请求的响应如果被第3个线程的请求给接收了,那不就乱套了吗,我们底层是如何处理的呢?面试官让详细解释下底层原理,我说我不知道,尴尬……
同学好,每个请求都会有唯一标识,只需要根据协议来确认唯一标识,然后回调给指定线程即可。
老师你好,你说的协议,唯一标识,具体是什么呢?帮忙详细展开说下吧,没看懂您的答复,谢谢
同学好,因为不同工具框架的方式不同,可以看看netty,比如这个https://www.cnblogs.com/-jn-blog/articles/13299191.html 看看里面的通讯过程,就明白了,会根据requestId 结合ConcurrentHashMap 实现
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
2.2k 27
3.3k 22
1.7k 15
1.9k 14
1.6k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号