Dubbo框架简介
-
背景与发展
- 背景: Dubbo 是阿里巴巴开源的一个高性能 Java RPC 框架,最早由阿里巴巴公司内部开发并开源,旨在解决分布式系统中服务间的通信问题。Dubbo 通过提供服务注册与发现、负载均衡、集群容错、动态代理等功能,简化了分布式应用的开发和维护。
- 发展: Dubbo 在开源社区逐渐受到关注,得到了广泛的应用和贡献,成为了一个成熟的微服务框架。然而,由于 Dubbo 的生态系统相对独立,阿里巴巴在内部也积极探索如何更好地构建微服务体系,从而推动了 Spring Cloud Alibaba 的产生。
- 官网: https://cn.dubbo.apache.org/zh-cn/
、流量控制(Sentinel)等。Spring Cloud 则着重于构建整体的微服务架构,提供了服务发现、负载均衡等核心功能。
- 社区支持: Spring Cloud 由 Spring 社区维护,有着广泛的社区支持和贡献。Spring Cloud Alibaba Dubbo 在阿里巴巴社区的基础上,也受到了一定的支持和贡献,但相对于 Spring Cloud 社区来说规模较小!
服务提供者与消费者
-
定义接口与实现
服务提供者需要定义服务接口并提供实现,消费者则需要引用服务接口并进行远程调用。
服务接口定义(provider-api 模块):
// 示例:com.example.providerapi.UserService public interface UserService { String getUserInfo(String userId); }
服务实现(provider-service 模块):
// 示例:com.example.providerservice.UserServiceImpl @Service public class UserServiceImpl implements UserService { @Override public String getUserInfo(String userId) { return "User info for userId: " + userId; } }
服务提供方配置(provider-service 模块的 application.properties):
spring.application.name=provider-service server.port=8081 # Dubbo 配置 dubbo.application.name=provider-