第十章 dubbo執行緒模型

2021-09-07 16:16:43 字數 1156 閱讀 8589

一 netty的執行緒模型

在netty中存在兩種執行緒:boss執行緒和worker執行緒。

1 boss執行緒

作用:個數:2 worker執行緒

作用:個數: 注意:

二 dubbo的事件派發策略和執行緒池

1、dubbo基於netty。有5種派發策略:

2、業務執行緒池:

cached:快取執行緒池,空閒一分鐘自動刪除,需要時重建。

limited:可伸縮執行緒池,但池中的執行緒數隻會增長不會收縮。只增長不收縮的目的是為了避免收縮時突然來了大流量引起的效能問題。

三 服務端

兩種執行緒池:

業務執行緒池:fixedthreadpool():「dubboserverhandler-10.10.10.11:20880」 見「二 dubbo的事件派發策略和執行緒池

四 客戶端

兩種執行緒池:

業務執行緒池:cachedthreadpool:「dubboclienthandler-10.10.10.10:20880」

五 dubbo執行緒模型圖

整體步驟:(受限於派發策略,以預設的all為例, 以netty4為例)

客戶端的主線程發出乙個請求後獲得future,在執行get時進行阻塞等待;

服務端使用worker執行緒(netty通訊模型)接收到請求後,將請求提交到server執行緒池中進行處理

server執行緒處理完成之後,將相應結果返回給客戶端的worker執行緒池(netty通訊模型),最後,worker執行緒將響應結果提交到client執行緒池進行處理

client執行緒將響應結果填充到future中,然後喚醒等待的主線程,主線程獲取結果,返回給客戶端

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...

第十章 屬性

z屬性 本章也比較簡單稍作介紹 無參屬性就是我們常見的屬性 可以封裝屬性 以執行緒安全方式訪問 有參屬性就是c 中的所引器 匿名型別 如圖遇到如下 具體點就是 上面的注釋也已經講清楚了,定義的型別之後,構造例項,然後初始化屬性。現在詳細說下 編譯器接收到 上圖 先用var 定義乙個型別,但是不具體指...

第十章 屬性

目錄 10.1 無參屬性 10.2 有參屬性 10.3 呼叫屬性訪問器方法時的效能 10.4 屬性訪問器的可訪問性 10.5 泛型屬性訪問器方法 物件導向設計和程式設計的重要原則之一就是資料封裝,意味著型別的字段不應該公開,否則很容易因為不恰單使用欄位而破壞物件的狀態。可將屬性想象成智慧型字段,即背...