兩個 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>
<!-- 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"/>
<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;
}
}
demoService.sayHello("World"),輸出 "Hello World"。Serializable。