springboot下dubbo的負載均衡配置

背景

部署了兩臺服務器,每臺上都有相同的dubbo的提供者。但是發現,A掛了後,請求報錯,不會自動去請求另一臺正常運行的提供者。

處理方法

修改前的dubbo配置(yml):

dubbo:
  application:
    name: provider-serviceName
  registry:
    timeout: '60000'
    address: zookeeper://ip:2181
    username: username
    password: password
  protocol:
    name: dubbo
    port: '-1'
  monitor:
    protocol: registry
  consumer:
    check: false

修改後配置:

dubbo:
  application:
    name: provider-serviceName
  registry:
    timeout: '60000'
    address: zookeeper://ip:2181
    username: username
    password: password
  protocol:
    name: dubbo
    port: '-1'
  monitor:
    protocol: registry
  consumer:
    check: false
  provider:
    timeout: '60000'
    #負載均衡策略:加權輪詢
    loadbalance: roundrobin

即增加了對提供者的負載均衡配置,負載均衡使用的策略爲加權輪詢。

  provider:
    timeout: '60000'
    #負載均衡策略:加權輪詢
    loadbalance: roundrobin

修改後,則可實現,2個privider中某個掛掉後,會自動轉向請求另外一個。

原理

dubbo的負載均衡算法一共有5中,默認是隨機算法:


 奇怪的是,我實驗的過程中,某臺提供者掛掉後,始終沒有去請求另一臺,感覺也不隨啊,不知道爲什麼。

本來優先考慮使用一致性hash,但是部署後,仍然沒有自動請求正常運行的提供者。待後面再研究吧。。。

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