Dubbo 解决企业微服务从开发、部署到治理运维的一系列挑战,Dubbo 为开发者提供从项目创建、开发测试,到部署、可视化监测、流量治理,再到生态集成的全套服务。
接下来以 Java 体系 Spring Boot 项目为例讲解 Dubbo 应用开发的基本步骤,整个过程非常直观简单,其他语言开发过程类似。
Dubbo 微服务项目脚手架(支持浏览器页面、命令行和 IDE)可用于快速创建微服务项目,只需要告诉脚手架期望包含的功能或组件,脚手架最终可以帮助开发者生成具有必要依赖的微服务工程。更多脚手架使用方式的讲解,请参见任务模块的 通过模板生成项目脚手架
1. 定义服务
public interface DemoService {
String hello(String arg);
}
2. 提供业务逻辑实现
@DubboService
public class DemoServiceImpl implements DemoService {
public String hello(String arg) {
// put your microservice logic here
}
}
1. 发布服务定义
为使消费方顺利调用服务,服务提供者首先要将服务定义以 Jar 包形式发布到 Maven 中央仓库。
2. 对外暴露服务
补充 Dubbo 配置并启动 Dubbo Server
dubbo:
application:
name: dubbo-demo
protocol:
name: dubbo
port: -1
registry:
address: zookeeper://127.0.0.1:2181
首先,消费方通过 Maven/Gradle 引入 DemoService
服务定义依赖。
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-demo-interface</artifactId>
<version>3.2.0</version>
</dependency>
编程注入远程 Dubbo 服务实例
@Bean
public class Consumer {
@DubboReference
private DemoService demoService;
}
以上是 Dubbo 微服务开发的流程性说明,实际开发的详细指导步骤请参见:
Dubbo 原生服务可打包部署到 Docker 容器、Kubernetes、服务网格 等云原生基础设施和微服务架构。
关于不同环境的部署示例,可参考:
对于服务治理,绝大多数应用只需要增加以下配置即可,Dubbo 应用将具备地址发现和负载均衡能力。
dubbo:
registry:
address: zookeeper://127.0.0.1:2181
部署并打开 Dubbo Admin 控制台,可以看到集群的服务部署和调用数据
除此之外,Dubbo Amin 还可以通过以下能力提升研发测试效率
对于更复杂的微服务实践场景,Dubbo 还提供了更多高级服务治理特性,具体请参见文档了解更多。包括: