Dubbo之參數配置(五)

目錄

併發控制

連接控制

延遲連接

粘滯連接


 

併發控制

  • 使用場景

限制服務的方法在服務器端佔用線程池線程數的數量。

  • 配置

(1)限制BarService的每個方法,服務器端併發執行數不能超過10個

<dubbo:service interface="com.foo.BarService" executes="10" />

(2)限制BarService的sayHello方法,服務器端併發執行數不能超過10個

<dubbo:service interface="com.foo.BarService>
    <dubbo:method name="sayHello" executes="10" />
</dubbo:service>


(3)限制BarService的每個方法,每個客戶端併發執行(或佔用連接的請求數)不能超過10個

<dubbo:service interface="com.foo.BarService" actives="10" />
或者
<dubbo:reference interface="com.foo.BarService" actives="10" />


(4)限制com.foo.BarService的sayHello方法,每個客戶端併發執行(或佔用連接的請求數)不能超過10個

<dubbo:service interface="com.foo.BarService>
    <dubbo:method name="sayHello" actives="10" />
</dubbo:service>
或者
<dubbo:reference interface="com.foo.BarService>
    <dubbo:method name="sayHello" actives="10" />
</dubbo:reference>
  • 注意

如果<dubbo:service>和<dubbo:reference>都配了actives,<dubbo:reference>優先。

使用actives配置時,如上設置sayHello方法的併發請求數量最大爲10,如果客戶端請求該方法併發超過了10則客戶端會被阻塞,等客戶端併發請求數量少於10的時候,該請求才會被髮送到服務提供方服務器。在dubbo中客戶端併發控制是使用ActiveLimitFilter過濾器來

控制的。源碼詳情請點擊:actives過濾器

使用executes時,服務提供方設置併發數量,如果同時請求數量大於了設置的executes的值,則會拋出異常,而不是像消費端設置actives時候,會等待。服務提供方併發控制是使用ExecuteLimitFilter過濾器實現的。源碼詳情請點擊:executes過濾器

 

連接控制

  • 使用場景

限制服務器端接受的連接數。

(1)限制服務器接收的連接不能超過10個:

<dubbo:provider protocal="dubbo" accepts="10" />

<dubbo:protocol name="dubbo" accepts="10" />

 (2)限制客戶端服務使用連接數:

<dubbo:referece interface="com.foo.BarService" connections="10" />
或者
<dubbo:service inteterface="com.foo.BarService" connections="10" />
  • 注意

如果<dubbo:service>和<dubbo:reference>都配置了connections,<dubbo:reference>優先。

延遲連接

  • 使用場景

用於減少長連接數,當有調用發起時,再創建長連接。只對使用長連接的dubbo協議生效。

<dubbo:protocol name="dubbo"   lazy="true" />

粘滯連接

  • 使用場景

用於有狀態服務,儘可能讓客戶端總是向同一提供者發起調用,除非該提供者掛了,再連接另一臺。粘滯連接將自動開啓延遲連接,以減少長連接數。

<dubbo:protocol name="dubbo" sticky="true" />

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章