这种问题,其实考察的就是你对Dubbo的理解程度了,一般可以从他的相关原理以及细节实现上面来回答,比如Dubbo作为一个RPC框架,需要考虑的问题有以下这几个:
1、RPC调用,需要通信吧,那就需要一个通信协议。
2、通信的过程中,需要做参数的序列化吧,那就需要一个序列化协议。
3、RPC框架中需要有注册中心吧,服务提供者和调用者需要和注册中心交互吧,这就需要解决服务的注册和发现的问题吧。
4、有了多个服务提供者之后,调用者在调用的时候,需要选择一个具体的服务调用吧,这时候是不是又需要负载均衡了。
5、RPC重要的是像调用本地服务一样调用远程服务,那么这就涉及到动态代理的技术实现了吧
6、除了以上这些重要的核心功能以外,还可以考虑,比如缓存、比如服务降级、比如泛化调用、比如优雅上下线、比如服务的高可用、比如异步回调、比如服务治理之类的了。
所以,把一个问题拆解出来之后,你会发现剩下这些问题可能都是你见过的——"八股文"!
如通信协议:
如序列化协议的话,可以参考:
如服务的注册和发现:
如负载均衡:
如动态代理:
还有缓存、泛化调用、优雅上下线,在八股文中也都有,就不一一展示了,大家可以自行搜索一下。