dubbo接口開發文檔

<dubbo:protocol 前端

  • 事件處理線程說明
  • 若是事件處理的邏輯能迅速完成,而且不會發起新的IO請求,好比只是在內存中記個標識,則直接在IO線程上處理更快,由於減小了線程池調度。
  • 但若是事件處理邏輯較慢,或者須要發起新的IO請求,好比須要查詢數據庫,則必須派發到線程池,不然IO線程阻塞,將致使不能接收其它請求。
  • 若是用IO線程處理事件,又在事件處理過程當中發起新的IO請求,好比在鏈接事件中發起登陸請求,會報「可能引起死鎖」異常,但不會真死鎖。

<dubbo:registryjava

有時候但願人工管理服務提供者的上線和下線,此時需將註冊中心標識爲非動態管理模式。git

<dubbo:registry address="10.20.141.150:9090" dynamic="false" />github

 

 

不一樣服務在性能上適用不一樣協議進行傳輸,好比大數據用短鏈接協議,小數據大併發用長鏈接協議。數據庫

 

異步調用緩存

基於NIO的非阻塞實現並行調用,客戶端不須要啓動多線程便可完成並行調用多個遠程服務,相對多線程開銷較小。多線程

<dubbo:reference id="fooService" interface="com.alibaba.foo.FooService">併發

      <dubbo:method name="findFoo" async="true" />異步

</dubbo:reference>async

<dubbo:reference id="barService" interface="com.alibaba.bar.BarService">

      <dubbo:method name="findBar" async="true" />

</dubbo:reference>

 

 

 

應用間聲明依賴強度,哪些功能強依賴,哪些弱依賴,而後基於依賴強度,計算出影響面,並按期測試複查,增強關鍵路徑上的服務的優化和容錯,清理不應在關鍵路徑上的服務。

提供容錯Mock數據,Mock數據也應能夠在註冊中心在運行時動態下發,當某服務不可用時,用Mock數據代替,能夠減小故障的發生,好比某驗權服務,當驗權服務所有掛掉後,直接返回false表示沒有權限,並打印Error日誌報警。

另外,前端的頁面也應採用Portal進行降級,當該Portal獲取不到數據時,直接隱藏,或替換爲其它模塊展現,並提供功能開關,可人工干預是否展現,或限制多少流量能夠展現。

結果緩存

(+) (#)

 

結果緩存,用於加速熱門數據的訪問速度,Dubbo提供聲明式緩存,以減小用戶加緩存的工做量。

 

2.1.0以上版本支持

     

示例代碼:https://github.com/alibaba/dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/cache

  • lru 基於最近最少使用原則刪除多餘緩存,保持最熱的數據被緩存。
  • threadlocal 當前線程緩存,好比一個頁面渲染,用到不少portal,每一個portal都要去查用戶信息,經過線程緩存,能夠減小這種多餘訪問。
相關文章
相關標籤/搜索