Apache Dubbo 是一个高性能、基于 Java 的开源 RPC 框架。请访问官方网站获取快速入门指南和文档,也可通过 wiki 获取新闻、FAQ 和版本发布说明。
我们正在收集 Dubbo 用户信息,以帮助我们进一步改进 Dubbo。恳请您在 issue#1012: Wanted: who's using dubbo 中补充您的信息以支持我们,谢谢 :)

以下代码片段来自 Dubbo Samples。您可以先克隆示例项目并进入 dubbo-samples-api 子目录,然后再继续。
# git clone https://github.com/apache/dubbo-samples.git
# cd dubbo-samples/java/dubbo-samples-api
dubbo-samples-api 目录下有一个 README 文件。我们建议按照下述说明参考该目录中的示例:
<properties>
<dubbo.version>2.7.8</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
package org.apache.dubbo.samples.api;
public interface GreetingsService {
String sayHi(String name);
}
参见 GitHub 上的 api/GreetingsService.java。
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.samples.api.GreetingsService;
public class GreetingsServiceImpl implements GreetingsService {
@Override
public String sayHi(String name) {
return "hi, " + name;
}
}
参见 GitHub 上的 provider/GreetingsServiceImpl.java。
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;
import java.util.concurrent.CountDownLatch;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) throws Exception {
ServiceConfig<GreetingsService> service = new ServiceConfig<>();
service.setApplication(new ApplicationConfig("first-dubbo-provider"));
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
service.setInterface(GreetingsService.class);
service.setRef(new GreetingsServiceImpl());
service.export();
System.out.println("dubbo service started");
new CountDownLatch(1).await();
}
}
参见 GitHub 上的 provider/Application.java。
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java
package org.apache.dubbo.samples.client;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) {
ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
reference.setInterface(GreetingsService.class);
GreetingsService service = reference.get();
String message = service.sayHi("dubbo");
System.out.println(message);
}
}
参见 GitHub 上的 consumer/Application.java。
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java
服务消费者将在屏幕上打印出 hi, dubbo。
如果您想试用最新的特性,可以使用以下命令进行构建。(构建 master 分支需要 Java 1.8)
mvn clean install
邮件列表:
Bug:Issues
Gitter:Gitter 聊天室
Twitter:@ApacheDubbo
有关提交补丁和贡献工作流程的详细信息,请参阅 CONTRIBUTING。
Good first issue 或 Help wanted 标签的 issue。请按照模板报告任何问题。
请私下向我们报告安全漏洞。
dubbo 的组织,用于汇集所有尚不适合放入 apache 组织的 Dubbo 相关项目Apache Dubbo 软件根据 Apache 许可证 2.0 版授权。详情请参阅 LICENSE 文件。