Dubbo 是阿里巴巴开源的高性能 Java RPC 框架,专为分布式服务架构设计。它通过 服务注册与发现、负载均衡、容错机制 等核心能力,简化了分布式系统的开发和治理,广泛应用于微服务架构中。以下是其关键特点:
核心特性
像调用本地方法一样调用远程服务,屏蔽网络通信细节,开发者无需关注底层实现。
服务提供者(Provider)将服务地址注册到注册中心(如 Zookeeper、Nacos),消费者(Consumer)动态发现服务地址,实现动态扩缩容。
支持随机、轮询、最少活跃调用等策略,优化流量分配,提升系统可用性。
提供失败重试(Failover)、快速失败(Failfast)、降级(Failsafe)等策略,保障服务稳定性。
包含限流、熔断、监控等能力,支持动态配置调整(如超时时间、重试次数)。
支持 Dubbo 协议(默认)、HTTP、RMI、Hessian 等,适应不同场景需求。
前置条件 nacos安装 jdk
xml<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.2.0</version> <!-- 根据需求选择版本 -->
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>3.2.0</version> <!-- 版本需与 Dubbo 一致 -->
</dependency>
YML# Dubbo 配置
dubbo.application.name=your-service-name
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
# Nacos 注册中心配置
dubbo.registry.address=nacos://127.0.0.1:8848
javapublic interface HelloService {
String sayHello(String name);
}
java@Service // Dubbo 的 @Service 注解
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
消费者配置
ymldubbo.application.name=your-consumer-name
dubbo.registry.address=nacos://127.0.0.1:8848
引用
java@Reference // Dubbo 的 @Reference 注解
private HelloService helloService;
public void testHelloService() {
String result = helloService.sayHello("Dubbo");
System.out.println(result); // 输出: Hello, Dubbo
}
拉取docker镜像
docker pull apache/dubbo-admin:latest
部署
docker run -d \ --name dubbo-admin \ -p 9600:8080 \ -e admin.registry.address=nacos://<NACOS_IP>:8848 \ -e admin.config-center=nacos://<NACOS_IP>:8848 \ -e admin.metadata-report.address=nacos://<NACOS_IP>:8848 \ -e admin.root.user.name=root \ -e admin.root.user.password=root \ --restart=always \ apache/dubbo-admin:latest
访问http://<服务器IP>:9600
默认账号root 密码root
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!