本篇讲的是本地暴露,面试主要问得多是远程暴露,因为远程暴露涉及到了zookeeper和netty.比如和zookeeper相关的最常问的两道题是服务提供者能实现失效踢出是根据什么原理?,dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?.当然如果这两个你答得好,还会往下问,比如zookeeper实现分布式锁,zookeeper选举机制等等,netty能问得可就很多了,AIO BIO NIO,线程模型等等,netty如果要问的话一般要问得比zookeeper要深一些.
dubbo服务中的本地暴露
dubbo服务中的远程暴露
注意此图箭头方向是有Consumer到Provider的过程,
关键词 filter 上一篇有述。exportMap .put(key,exporter); Procotol;Server;Exchanger(Client
,Server
,其实这个交换层,就是做封装请求与响应
之间的交互层.);Transporter(网络传输层
,其中Grizzly
和Mina
和Netty
都是非常有名的NIO框架);exporter