Dubbo Project
Dubbo是阿里巴巴开源的基于Java的高性能RPC框架。请访问 dubbo.io 获取快速入门和其他信息。
现在我们正在收集dubbo用户信息,以帮助我们更好地改进dubbo,请通过提供问题#1012:通缉:谁在使用dubbo 为您提供帮助,感谢:)
特性
- 基于透明接口的RPC
- 智能负载均衡
- 自动服务注册和发现
- 可扩展性高
- 运行时流量路由
- 可视化的服务治理
入门
以下代码段来自Dubbo Samples。 在继续阅读之前,您可以克隆示例项目并进入dubbo-samples-api子目录。
#git clone https://github.com/dubbo/dubbo-samples.git
#cd dubbo-samples/dubbo-samples-api
dubbo-samples-api目录下有一个README文件。 阅读并按照说明尝试此示例。
Maven依赖
<properties> <dubbo.version>2.6.5</dubbo.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo-dependencies-bom</artifactId> <version>${dubbo.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </dependency> </dependencies>
定义服务接口
package org.apache.dubbo.demo.api; public interface GreetingService { String sayHello(String name); }
See api/GreetingService.java on GitHub.
Implement service interface for the provider
package org.apache.dubbo.demo.provider; import org.apache.dubbo.demo.GreetingService; public class GreetingServiceImpl implements GreetingService { public String sayHello(String name) { return "Hello " + name; } }
See provider/GreetingServiceImpl.java on GitHub.
Start service provider
package org.apache.dubbo.demo.provider; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.RegistryConfig; import com.alibaba.dubbo.config.ServiceConfig; import org.apache.dubbo.demo.GreetingService; import java.io.IOException; public class Application { public static void main(String[] args) throws IOException { ServiceConfig<GreetingService> serviceConfig = new ServiceConfig<GreetingService>(); serviceConfig.setApplication(new ApplicationConfig("first-dubbo-provider")); serviceConfig.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234")); serviceConfig.setInterface(GreetingService.class); serviceConfig.setRef(new GreetingServiceImpl()); serviceConfig.export(); System.in.read(); } }
See provider/Application.java on GitHub.
Start service provider
package org.apache.dubbo.demo.provider; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.RegistryConfig; import com.alibaba.dubbo.config.ServiceConfig; import org.apache.dubbo.demo.GreetingService; import java.io.IOException; public class Application { public static void main(String[] args) throws IOException { ServiceConfig<GreetingService> serviceConfig = new ServiceConfig<GreetingService>(); serviceConfig.setApplication(new ApplicationConfig("first-dubbo-provider")); serviceConfig.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234")); serviceConfig.setInterface(GreetingService.class); serviceConfig.setRef(new GreetingServiceImpl()); serviceConfig.export(); System.in.read(); } }
See provider/Application.java on GitHub.
Build and run the provider
# mvn clean package # mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.demo.provider.Application exec:java
Call remote service in consumer
package org.apache.dubbo.demo.consumer; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.ReferenceConfig; import com.alibaba.dubbo.config.RegistryConfig; import org.apache.dubbo.demo.GreetingService; public class Application { public static void main(String[] args) { ReferenceConfig<GreetingService> referenceConfig = new ReferenceConfig<GreetingService>(); referenceConfig.setApplication(new ApplicationConfig("first-dubbo-consumer")); referenceConfig.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234")); referenceConfig.setInterface(GreetingService.class); GreetingService greetingService = referenceConfig.get(); System.out.println(greetingService.sayHello("world")); } }
Build and run the consumer
# mvn clean package # mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.demo.consumer.Application exec:java
消费者将在屏幕上打印出Hello world。
See consumer/Application.java on GitHub.
链接
- Dubbo生态系统入口
- Dubbo Spring Boot - Dubbo的Spring Boot项目。
- Dubbo ops - Dubbo的操作和参考实施。包含dubbo-admin,dubbo-monitor模块。
- Gitter频道
- 邮件列表
- 您的第一个Dubbo应用程序 -- 一个101教程,用于显示更多详细信息,使用相同的代码。
- Dubbo用户手册
- Dubbo开发人员指南
- Dubbo管理员手册