Dubbo(分布式RPC调用和分布式文件储存)
目录
一、Dubbo简介
二、配置文件详解
1. 服务提供者配置
2. 服务消费者配置
3. 应用级配置
三、服务的远程调用
1. 监控中心
2. 管理中心(Dubbo Admin)
3. 日志管理
五、服务的负载均衡策略
一、Dubbo简介
Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,专注于解决分布式环境下的服务通信与治理问题。其核心设计目标是通过透明化远程调用细节,使开发者能够像调用本地方法一样使用远程服务,从而降低分布式系统开发复杂度。
核心能力:
- RPC通信:提供多种协议(如 Dubbo、Hessian、HTTP)支持,基于 NIO 异步通信和单一长连接实现高性能传输,默认采用 Netty 作为网络通信框架。
- 服务治理:涵盖服务注册与发现(支持 Nacos、Zookeeper、Consul 等注册中心)、负载均衡(随机、轮询、最少活跃调用、一致性 Hash 等策略)、流量管控(路由规则、权重配置)、集群容错(失败重试、快速失败)等功能。
- 扩展性:通过 SPI 机制支持自定义组件(如序列化、负载均衡算法),满足多样化业务需求。
发展历程:
- 起源于阿里巴巴内部服务化框架,2011 年开源并捐赠给 Apache 基金会。
- 经过近十年迭代,成为国内微服务领域事实标准,被阿里巴巴、工商银行、海尔等企业广泛应用于互联网、金融、制造业等场景。
二、配置文件详解
Dubbo 采用全 Spring 配置方式,通过 XML 或注解实现透明化接入,核心配置分为以下模块:
1. 服务提供者配置
<!-- 服务暴露 -->
<dubbo:service interface="com.example.DemoService" ref="demoService" protocol="dubbo" registry="default" timeout="3000" retries="2"/><!-- 服务实现Bean -->
<bean id="demoService" class="com.example.DemoServiceImpl"/><!-- 协议配置 -->
<dubbo:protocol name="dubbo" port="20880" serialization="hessian2"/><!-- 注册中心配置 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" timeout="5000"/>
关键参数