这个面试题还是挺常见的
人家并不是要你手撸一个RPC框架,资料,现场手撸一个RPC框架,撸的特别的简单,人家也不是要你手撸,也不是说让你进来了以后就是让你来研发RPC框架的
-
系统设计的问题
就是让你站在系统设计的角度,来考虑一下,到底如果要设计一个RPC框架,你会如何来考虑
-
动态代理
比如消费者和提供者,其实都是需要一个实现某个接口的动态代理的,RPC框架的一切的逻辑细节,都是在这个动态代理中实现的,动态代理里面的代码逻辑就是你的RPC框架核心的逻辑
JDK提供了API,去创建针对某个接口的动态代理
调用动态代理对象的方法之后,此时就应该先干一个事情,通过Cluster层的一些组件,服务注册中心,是用什么技术来进行实现呢?往简单了说,服务注册中心也可以是你自己手撸一个,也不难
自己手撸一个,服务去注册,其他服务去拉取注册表进行发现
ZooKeeper,稍微自己上网百度搜索一下,ZooKeeper入门使用教程,基本概念和原理,还有基本的使用,了解一下
Cluster层,从本地缓存的服务注册表里获取到要调用的服务的机器列表
-
负载均衡
参考Dubbo的负载均衡策略,此时你就可以把那些策略说一说,我要设计多少种策略,从服务的机器列表中采用负载均衡算法从里面选择出来一台机器
选择好了机器,知道了对方的端口号,而且知道你的请求调用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)