DUBBO、HttpClient、WebService


Dubbo:

Dubbo是阿里巴巴開源的基於 Java 的高性能 RPC 分布式服務框架,推薦使用 Zookeeper 作為注冊中心Registry,還有 Redis、Multicast、Simple,但不推薦。Dubbo 默認使用 Netty 框架,也是推薦

三個主要功能:基於接口的遠程調用,容錯與負載均衡,服務自動注冊與發現。

遠程調用:Dubbo使得調用遠程服務就像調用本地java服務一樣簡單

容錯(重試機制):缺省為 Failover 重試,失敗自動切換,當出現失敗,重試其它服務器 。通常用於讀操作,但重試會帶來更長延遲。可通過 retries="2" 來設置重試次數(不含第一次)。

負載均衡:默認隨機

自動注冊與發現:

1.服務提供者在啟動時,向注冊中心注冊自己提供的服務。

2. 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。

3. 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基於長連接推送變更數據給消費者。(實際操作客戶端不用關心)

默認是同步等待結果阻塞的,支持異步調用。

Dubbo 是基於 NIO 的非阻塞實現並行調用,客戶端不需要啟動多線程即可完成並行調用多個遠程服務,相對多線程開銷較小,Dubbo 的設計目的是為了滿足高並發小數據量的 rpc 調用,在大數據量下的性能表現並不好,建議使用 rmi 或 http 協議。

Monitor:服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鍾發送一次統計數據到監控中心

在 Provider 上可以配置的 Consumer 端的屬性:

1.loadbalance:負載均衡算法,默認隨機

2.timeout:方法調用超時

3.retries:失敗重試次數,默認重試 2 次

4.actives 消費者端,最大並發調用限制

注冊中心對等集群,任意一台宕掉后,會自動切換到另一台 
注冊中心全部宕掉,服務提供者和消費者仍可以通過本地緩存通訊 
服務提供者無狀態,任一台宕機后,不影響使用 
服務提供者全部宕機,服務消費者會無法使用,並無限次重連等待服務者恢復 

HttpClient:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM