首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Dubbo 分布式服務框架入門實戰:架構、配置與核心標籤詳解

     編輯:Java 綜合教學

Dubbo 核心定位

Dubbo 是阿里巴巴開源的高性能 Java RPC 框架,提供透明化遠程調用、智能負載均衡、服務自動發現三大核心能力,是微服務架構中的服務治理基石。

架構五大角色與調用流程

  • Provider:服務提供者,啟動時向註冊中心註冊服務
  • Consumer:服務消費者,啟動時訂閱所需服務
  • Registry:註冊中心(推薦 Zookeeper),管理服務地址
  • Monitor:監控中心,統計調用次數與耗時
  • Container:服務運行容器(通常為 Spring 容器)

調用鏈路:

  1. Container 啟動 Provider
  2. Provider 註冊服務到 Registry
  3. Consumer 訂閱服務
  4. Registry 推送 Provider 地址列表
  5. Consumer 基於負載均衡選擇 Provider 直連調用
  6. 雙方異步上報統計數據到 Monitor

Spring 整合配置實戰

服務接口定義(獨立模塊共享)

package com.demo.api;
public interface DemoService {
    String sayHello(String name);
}

Provider 實現與暴露

<!-- provider.xml -->
<dubbo:application name="provider-app" />
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:service interface="com.demo.api.DemoService" ref="demoServiceImpl" />
<bean id="demoServiceImpl" class="com.demo.provider.DemoServiceImpl" />

Consumer 引用與調用

<!-- consumer.xml -->
<dubbo:application name="consumer-app" />
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:reference id="demoService" interface="com.demo.api.DemoService" />

// Java 代碼調用
DemoService service = context.getBean("demoService");
String result = service.sayHello("World");

五大核心配置標籤詳解

標籤用途關鍵屬性
<dubbo:service>暴露服務interface、ref、timeout、retries、loadbalance
<dubbo:reference>引用服務id、interface、version、check、url(直連)
<dubbo:protocol>協議配置name、port、threads、serialization
<dubbo:registry>註冊中心address、protocol、timeout、file(緩存)
<dubbo:method>方法級配置name、timeout、retries、actives(並發限制)

Dubbo 協議特性與適用場景

  • 默認協議:dubbo://,單長連接,NIO 異步,Hessian2 序列化
  • 適用:小數據包(<100K)、高並發、消費者多於提供者
  • 不適用:大文件傳輸、視頻流、超大字符串

配置優先級機制

方法級 > 服務級 > 全局默認級,靈活覆蓋實現精細化治理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved