1. 程式人生 > >Dubbo 面試題總結

Dubbo 面試題總結

1、測試和生產共用一套zookeeper,怎麼保證消費不衝突 ?

方案1、服務釋出的group設定為不同;

<dubbo:reference id="comm1" timeout="100000" interface="com.acq.facade.CommService" group="comm102" version="1.0.0" retries="0" check="false">
</dubbo:reference>
<dubbo:reference id="comm2" timeout="100000" interface="com.acq.facade.CommService"
group="comm103" version="1.0.0" retries="0" check="false"> </dubbo:reference>

方案2、多版本

<dubbo:service interface="com.foo.BarService" version="1.0.0" />

方案3、dubbo白名單(Filter過濾器)

1.新增一個類繼承阿里巴巴的Filter
2.新增阿里巴巴的約定新建配置檔案 com.alibaba.dubbo.rpc.Filter,指定上面的類
3.配置ip白名單
4.配置服務端dubbo配置

2、dubbo執行時,突然所有的zookeeper全部宕機,dubbo是否還會繼續提供服務?

會的,dubbo根據本地快取的服務地址進行服務呼叫

  • 監控中心宕掉不影響使用,只是丟失部分取樣資料
  • 資料庫宕掉後,註冊中心仍能通過快取提供服務列表查詢,但不能註冊新服務
  • 註冊中心對等叢集,任意一臺宕掉後,將自動切換到另一臺
  • 註冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地快取通訊
  • 服務提供者無狀態,任意一臺宕掉後,不影響使用
  • 服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復

3、服務提供者能實現失效踢出是什麼原理?

基於zookeeper的臨時節點原理

持久節點
所謂持久節點,是指在節點建立後,就一直存在,直到有刪除操作來主動清除這個節點,也就是說不會因為建立該節點的客戶端會話失效而消失

臨時節點
臨時節點的生命週期和客戶端會話繫結,也就是說,如果客戶端會話失效,那麼這個節點就會自動被清除掉

4、建立的臨時節點什麼時候會被刪除,是連線一斷就刪除嗎?延時是多少?
連線斷了之後,ZK不會馬上移除臨時資料,只有當SESSIONEXPIRED之後,才會把這個會話建立的臨時資料移除。因此,使用者需要謹慎設定Session_TimeOut

5、Dubbo在安全機制方面是如何解決的 ?
Dubbo通過Token令牌防止使用者繞過註冊中心直連,然後在註冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的呼叫方。

6、說說核心的配置有哪些?

dubbo:service/ 服務提供者暴露服務配置

dubbo:reference/ 服務消費者引用服務配置

dubbo:protocol/ 服務提供者協議配置

dubbo:registry/ 註冊中心配置

dubbo:application/ 應用資訊配置

dubbo:provider/ 服務提供者預設值配置

dubbo:consumer/ 服務消費者預設值配置

dubbo:method/ 方法級配置