• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      什么是Dubbo?Dubbo在項目中怎么使用?

      更新時間:2021年12月02日17時21分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓

      Dubbo 是阿里開源的遠程服務調用(RPC)的分布式框架,提供了 SOA 服務治理方案;它的架構主要有五個角色/核心組件,分為是 Container(容器)、Provider(服務的提供方)、Registry(注冊中心)、Consumer(服務的消費方)、Monitor(監控中心)。

      容器主要負責啟動、加載、運行服務提供者;

      同時服務提供者在啟動時,向注冊中心注冊自己提供的服務;

      消費者向注冊中心訂閱自己的服務;

      注冊中心返回服務提供者列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者;

      對于服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另外一臺調用;

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

      Dubbo 在項目中主要用來實現不同系統之間的服務調用,由于項目是按照不同的功能分了不同的系統,按照三層架構又分了不同的服務,其中三層架構中的控制層作為服務的消費方,業務層和持久層共同作為服務的發布方,這樣的架構實現了系統的服務化,提高了開發效率,實現了業務的解耦。

      項目中通過 Dubbo 和 Spring 的整合,采用全 Spring 配置方式,只需要用 Spring 來加載Dubbo 的配置,完成了服務的發布和調用。

      我們主要在服務的暴露方通過dubbo:service標簽來暴露服務,在服務的消費方通過dubbo:reference標簽來引用服務,注冊中心我們選用的是 zookeeper,對服務的URL進行了管理和配置。

      Dubbo 支持 Dubbo 協議、RMI 協議、hessian 協議、Http 協議等。

      Dubbo 協議:缺省協議、采用了單一長連接和 NIO 異步通訊、使用線程池并發處理請求,能減少握手和加大并發效率、采用的是 Hession 二進制序列化、性能較好,推薦使用。

      主要應用于傳入傳出參數數據包較小(建議小于 100K),消費者比提供者個數多,由于是單一連接,因為盡量不要傳輸大文件。

      RMI 協議:采用 JDK 標準的 RMI 協議(基于 TCP 協議)、堵塞式短連接、JDK 標準序列化方式、同步通訊。

      適用于消費者和提供者個數差不多的,可傳文件。測試發現偶爾會連接失敗,需要重建 Stub。

      Hessian 協議:采用 http 通訊,采用 Servlet 暴露服務,多連接短連接的同步傳輸方式,采用hession 的二進制序列化,適合提供者比消費者多。





      猜你喜歡:

      Dubbo面試題及答案

      微服務和分布式的區別什么?有什么特點?

      Redis如何實現分布式阻塞隊列?

      傳智教育java高級軟件工程師培訓

      0 分享到:
      神马影院我不卡