写点什么

了解 Dubbo:分布式服务框架的基础知识

作者:Apifox
  • 2023-06-09
    广东
  • 本文字数:1750 字

    阅读完需:约 6 分钟

了解 Dubbo:分布式服务框架的基础知识

Dubbo 是什么

Dubbo 是阿里巴巴公司开发的一款高性能的分布式服务框架,用于远程服务调用和服务治理。它具有透明化的远程调用、负载平衡、服务注册和发现、可扩展性和服务治理等特性。Dubbo 支持自定义扩展各种功能,如负载均衡、协议、序列化等,并提供了大量服务治理功能,如监控、追踪、容错和限流等,让服务的运行更加稳定和可靠。它是一种高效、可扩展和可靠的分布式服务框架解决方案,适用于构建大型分布式系统。


Dubbo 能做什么

Dubbo 框架具有以下功能:


  1. 远程调用:Dubbo 框架采用 RPC(远程过程调用)方式进行远程服务调用,在实现分布式系统中的服务调用时,可使调用者感觉就像是调用本地服务一样方便。

  2. 负载平衡:Dubbo 框架内置多种负载平衡策略,可根据实际情况选择不同的负载平衡策略,如随机、轮询、最小活跃数等,使得服务请求可以平衡地分布到不同的服务提供者上,提高服务的可用性和性能。

  3. 服务注册和发现:Dubbo 框架提供了服务注册和发现的功能,可将服务注册到注册中心,也可从注册中心中查询服务信息,方便实现服务的动态扩容和缩容。

  4. 可扩展性:Dubbo 框架提供了可扩展的插件机制,可自定义扩展各种功能,如负载均衡、协议、序列化等。

  5. 服务治理:Dubbo 框架提供了丰富的服务治理功能,如监控、追踪、容错和限流等,可使得服务的运行更加稳定和可靠。

Dubbo 的架构

Dubbo 框架主要由以下组件构成:


  1. Provider:发布服务并将服务注册到注册中心,等待消费者调用。

  2. Consumer:从注册中心订阅服务,和服务提供者进行通信,消费服务。

  3. Registry:记录服务提供者的信息,以及服务提供者和服务消费者之间的关系,帮助消费者发现可用的服务实例。

  4. Monitor:收集 Dubbo 节点的性能指标、服务调用统计信息等,以便运维人员进行监控和管理。

  5. Container:服务的运行容器。


Dubbo 的应用

下面是一个 Dubbo 的服务启动代码样例:


spring.dubbo.application.name=spring-boot-starter-dubbo-demo-consumerspring.dubbo.registry.address=zookeeper: //localhost:2181spring.dubbo.protocal.name=dubbospring.dubbo.protocol.port=20880spring.dubbo.scan=com.sunlibin.weathercustomer

3.直接在serviceImpl层通过com.alibaba.dubbo.config.annotation.Reference;
package com.sunlibin.weathercustomer.service.impl;
import com.alibaba.dubbo.config.annotation.Reference;import com.sunlibin.bean.District;import com.sunlibin.service.RpcDistrictService;import com.sunlibin.weathercustomer.service.DistrictService;import org.springframework.stereotype.Service;
import java.util.List;
@Service("districtService")public class DistrictServiceImpl implements DistrictService {
@Reference private RpcDistrictService rpcDistrictService;
@Override public List<District> getAllDistrict() { return this.rpcDistrictService.getAllDistrict(); }
@Override public District getDistrictById(Integer id) { return this.rpcDistrictService.getDistrictById(id); }}
复制代码

使用 Apifox 访问 Dubbo 服务

Dubbo 其实就是 RPC 的一种远程调用方案,因此访问 Dubbo 服务可类比为调用 RPC 服务。我们需要使用 API 工具来进行接口的请求。以下是通过 Apifox 访问 Dubbo 服务的简要步骤:


1、在 Apifox 中新建 Dubbo 请求,填写对应名称、访问路径和请求方法。



2、接着我们到达运行页面,填入请求 body 的参数,传递参数的格式是:


{   "jsonrpc": "2.0",   "method": {{要调用的方法名称}},   "params": {{方法所需的参数}},   "id": {{请求的唯一标识符}}}
复制代码


所以我们填入正确格式的请求参数:


{   "jsonrpc": "2.0",   "method": "echo",   "params": {       "text": "Dubbo result"   },   "id": 18999}
复制代码


并且点击发送运行,得到 Dubbo 服务那边返回的数据。



3、点击发送运行按钮,得到 Dubbo 服务端返回的数据。


结论

Dubbo 框架是一种高效、可扩展和可靠的分布式服务框架解决方案,它具有丰富的服务治理功能,并支持自定义扩展各种功能,适用于构建大型分布式系统。使用 Apifox 访问 Dubbo 服务只需简单的配置即可实现服务调用。更多关于 Dubbo 框架相关知识可点击下方链接了解。


用户头像

Apifox

关注

Apifox 2022-05-17 加入

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化平台。Apifox = Postman + Swagger + Mock + JMeter

评论

发布
暂无评论
了解 Dubbo:分布式服务框架的基础知识_程序员_Apifox_InfoQ写作社区