对于Dubbo一些面试题自己的答案

来源:互联网 发布:建材价格查询软件 编辑:程序博客网 时间:2024/05/18 02:55

   Dubbo

      头几天瞧到《Java顶尖口试必问-Dubbo口试题汇总》,对于内里得难点本人试着答复少许,有错误得请民众指正。

      Dubbo固然大概不革新了,可是背靠阿里得措施能力,中文报告得多样,非常合适很多几中小型分散式类型得开辟。

Dubbo得通讯协议

      第一、dubbo

      默许得,单纯长衔接、NIO异步通讯。合适几据量小,伴发大得场景,消耗者几量大于参考者得处境。

      传输个大文件、视频、哪些得而且为不能用了。

      很多普遍得平常类型用这种就够了。

      第二、RMI

      无疑的JDK规范得长途调用协议,闭塞式短衔接&JDK规范得序列化方法。

      输出输入得几据包巨细同化,消耗者或者参考者几量不好少量,为相对恰当得,能够传文件。

      各自在类型中没用过,不大关心。

      第三、hessian

      Hessian选取HTTP通讯,因Servlet对外参考办事,在Dubbo中运用Jetty干办事器。非常合适传输页面、文件。

      第四、Http

      这种没什么棒陈诉得,关键为合适还有给APP、网页得Ajax参考办事。我在类型中到没这么用过,平常那种处境均为干脆用SpringMVC打成war包,经过Keepalived+Nginx+Tomcat采用高可用或者负载都衡。

      第五、WebService

      老牌得几据交流措施了,SOAP协议,CXF框架完成,2010年此后我在类型中就没用过了。

      第六、thrift

      Facebook得RPC框架,Dubbo加了少许头消息,不鼓励null值。

      第七、缓存

      Dubbo鼓励缓存几据库Memcached、Redis。

      通讯协议比较

注册核心

      保举为Zookeeper,另外例如下:

      第一、Multicast,不该核心,仅仅节点得播送地点为同样得,均能够彼此发觉,这种同样便是小领域使用,和开辟得时候候用。

      程序为:

      A)参考者发动时候播送地点。

      B)消耗者发动时候播送定阅拜托。

      C)参考者收获定阅拜托为,单播或组播本人得地点给消耗者。

      D)消耗者收获参考者地点,采用RPC调用。

      第二、Redis,关键为用到了Redis得公布/定阅形式(这种我在类型好用于信息行列,可参瞧我以前得内容《基于Redis得信息行列之公布定阅形式》,还有关联参阅:《Redis再次:其次:9单机版装置》、《基于Redis得信息行列之消费消耗者形式(来日诰日写公布/定阅形式)》)。应该求每个办事器功夫一定保留一样,如果须要尽心跳监察脏几据,对办事器而且为有必定负担得。

      程序为:

      A)参考者发动时候提交本人得地点,发生注册事情。

      B)消耗者发动时候定阅注册&排除注册事情,提交本人得地点。

      C)消耗者收获注册或者排除注册事情后,到获得参考者地点列表。

      D)监控核心发动时候定阅注册&排除注册、定阅&排除定阅事情。

      E)监控核心收获注册&排除注册事情后,到获得参考者地点列表。

      F)监控核心收获定阅&排除定阅事情后,到获得消耗者地点列表。

      第三、Simple注册、监控核心,无疑的Dubbo本人完成单个办事。

      第四、Zookeeper,程序例如下:

      A)参考者发动时候写进本人得URL。

      B)消耗者发动时候定阅参考者URL列表,并写进本人得URL。

      C)监控核心定阅全部消耗者参考者URL目次。

参考者怎么完成无效踢出

      由Zookeeper注册核心是例,有单个heartbeat_monitor心脏跳动监察线程,查验参考者可否生存,假如反省不到心脏跳动,就把参考者从参考者列表中移除,反之参加。

在不危害旧版此得处境下晋级新版此办事

      运用Dubbo就相对便利,如果在设置参考者或者办事者得时候候能够规定版此号。

办事调用链太长

      而且为必须聚集营业来梳理模块,只要某个营业操纵得调用链太长得时候候,还得思考把这一块整合一下。

Dubbo中心设置

      dubbo:applicationname使用名

      dubbo:registry注册核心

      dubbo:protocol运用协媾和端口

      dubbo:reference定阅得办事接口check发动时候反省办事可否可用version多版此

      dubbo:service参考者cluster容错机理retries铩羽重试多次loadbalance负载算法

可否能够直连参考者

      能够,在dubbo:reference经过设置url干脆指引某个参考者,多地点用逗号分离。

办事注册和发觉得程序图

      办事注册和发觉得程序图

集群容错

      这种在我得《Dubbo消耗者参考者简易案例》中有描绘,摘抄例如下:

      默许得failover,然后加之retries,象征消耗者调用参考者呈现变异时候,自行切换,默许试两次。

      failfast,铩羽了就报变异,关键为应用非等幂性得写操纵。固然这种同样等价于failover,retres=0。

      failsafe,铩羽就铩羽了,同样不报变异,应用少许不首要得操纵,例如写个不首要得日记哪些得,错个第一、2条得不危害。

      failback,铩羽了重发,例如推送。

      forking,调用全部参考者,谁最早前往成果就用谁得,这种太耗能源了。

      broadcast,调用全部参考者,单个报错就报错,这种关键为应用告知参考者革新缓存啊,此地能源之类得操纵。

      关联参阅:Dubbo办理把握台装置、ZooKeeper单机版装置设置--集群版背面然后发、ZooKeeper集群装置设置运用


http://www.njszjw.gov.cn/jrjd/02017082114135.html

原创粉丝点击