首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Dubbo + Spring + Zookeeper 整合 Demo 搭建指南

     編輯:關於C++

項目結構

兩個 Maven 模塊:dubbo-consumer、dubbo-provider。共享 API 接口模塊(或直接在 provider 定義接口,consumer 依賴)。

關鍵依賴

<dependencies>
    <!-- Spring -->
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.x</version></dependency>
    <!-- Dubbo -->
    <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version></dependency>
    <!-- Zookeeper 客戶端 -->
    <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version></dependency>
    <!-- 或者使用 Curator -->
    <dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency>
</dependencies>

Provider 配置

<!-- applicationContext.xml -->
<dubbo:application name="demo-provider"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:protocol name="dubbo" port="20880"/>

<bean id="demoService" class="com.demo.DemoServiceImpl"/>
<dubbo:service interface="com.demo.DemoService" ref="demoService"/>

Consumer 配置

<dubbo:application name="demo-consumer"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>

<dubbo:reference id="demoService" interface="com.demo.DemoService"/>

接口與實現

// DemoService.java
public interface DemoService {
    String sayHello(String name);
}

// DemoServiceImpl.java
@Service
public class DemoServiceImpl implements DemoService {
    public String sayHello(String name) {
        return "Hello " + name;
    }
}

啟動驗證

  1. 啟動 Zookeeper。
  2. 啟動 Provider,控制台輸出 "Service exported"。
  3. 啟動 Consumer,調用 demoService.sayHello("World"),輸出 "Hello World"。

常見問題

  • 版本衝突:Dubbo 2.5.x 需 Spring 4.x,JDK 1.7+。
  • Zookeeper 連不上:檢查 IP、端口、防火牆。
  • 序列化:Dubbo 默認 Hessian2,複雜對象需實現 Serializable。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved