首页 > 其他分享 >理解 Dubbo:Dubbo 是什么,如何使用?

理解 Dubbo:Dubbo 是什么,如何使用?

时间:2023-06-09 18:04:12浏览次数:42  
标签:Dubbo 调用 服务 框架 dubbo 如何 理解 com

Dubbo是什么

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

理解 Dubbo:Dubbo 是什么,如何使用?_spring

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 是什么,如何使用?_rpc_02

Dubbo的应用

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

spring.dubbo.application.name=spring-boot-starter-dubbo-demo-consumer
spring.dubbo.registry.address=zookeeper: //localhost:2181
spring.dubbo.protocal.name=dubbo
spring.dubbo.protocol.port=20880
spring.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请求,填写对应名称、访问路径和请求方法。

理解 Dubbo:Dubbo 是什么,如何使用?_dubbo_03

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

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

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

{
   "jsonrpc": "2.0",
   "method": "echo",
   "params": {
       "text": "Dubbo result"
   },
   "id": 18999
}

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

理解 Dubbo:Dubbo 是什么,如何使用?_dubbo_04

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

理解 Dubbo:Dubbo 是什么,如何使用?_dubbo_05

结论

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

标签:Dubbo,调用,服务,框架,dubbo,如何,理解,com
From: https://blog.51cto.com/u_15964010/6449679

相关文章

  • 帮您了解CDN节点如何做到访问加速与安全防护
    本文分享自天翼云开发者社区《帮您了解CDN节点如何做到访问加速与安全防护》,作者:尹****荷 网站业务痛点在当前网站快速发展的背景下,网站业务突增往往伴随着一系列网络安全隐患。主要会有以下痛点:1.高并发压力大:网站在业务突增中,会带来高并发的问题,可能会导致服务器资源耗尽......
  • ASEMI代理英飞凌TLD5097EL:理解和使用LED驱动器的综合指南
    编辑-ZTLD5097EL是一款创新的LED驱动器,在照明行业掀起了波澜。这项先进的技术提供了广泛的好处,包括提高能源效率、延长使用寿命和增强性能。在本综合指南中,我们将探讨TLD5097EL的功能和优点,并提供如何有效利用该LED驱动器优化照明解决方案的提示。 什么是TLD5097EL?TLD5097EL是一款......
  • java的接口和抽象类简单理解
    接口是定义了系统各模块应该遵守的标准。实现者对外提供哪些服务,调用者可以调用哪些服务以及如何调用服务。抽象类作为系统中各个子类的共同父类,所表现的是一种模板设计,只实现了最基础的共通功能,相当于一个中间产品,各个子类具体实现抽象方法。抽象类可以没有抽象方法,......
  • django form data如何传递到template的vue
    参考:https://docs.djangoproject.com/en/4.2/ref/templates/builtins/#json-scriptafelyoutputsaPythonobjectasJSON,wrappedina<script>tag,readyforusewithJavaScript.Argument:TheoptionalHTML“id”ofthe<script>tag.Forexample......
  • 面向多告警源,如何构建统一告警管理体系?
    本文介绍告警统一管理的最佳实践,以帮助企业更好地处理异构监控系统所带来的挑战和问题。背景信息在云原生时代,企业IT基础设施的规模越来越大,越来越多的系统和服务被部署在云环境中。为了监控这些复杂的IT环境,企业通常会选择使用异构监控系统,例如Prometheus、Grafana、Zabbix等,以......
  • java8如何校验ssh-keygen生成的公私钥
    如果你的公私钥文件不是PEM格式的,而是其他格式,如OpenSSH格式(通常以`id_rsa`和`id_rsa.pub`命名),你可以使用Java的`JSch`库来验证它们的有效性。下面是一个示例代码,演示如何使用`JSch`库验证OpenSSH格式的公私钥对:首先,你需要在项目中引入JSch库的依赖。你可以使用Maven或手动下载并......
  • Linux中cp命令如何使用?其参数有哪些?
    cp是Linux中常用命令之一,该命令主要用于复制文件或目录,那么Linux命令cp如何使用?本文为大家详细介绍一下cp命令,附带使用案例,希望对你有用哦!Linuxcp命令主要用于复制文件或目录。语法:cp[options]sourcedest或cp[options]source...directory参数说明:-a......
  • 如何利用腾讯云服务器部署店群业务
    我是一个享受干货的人,相信很多店群以及跨境电商小白在店群业务的实际运营实践中,经常被那些答非所问的营销视频或文章误导、把本来非常简单的问题复杂处理,还罗里吧嗦的看一堆废话到最后没有实质性的帮助,那今天,我就给大家出一份一滴水分都不带的干货指引,对行业小白的入门实现弯道超......
  • 京东数据api接口:京东电商数据如何采集?
    电商数据分析是指对电商平台上的数据进行整理,并根据不同的目的,采用不同的方式进行分析,而这需要借助相关的数据分析工具——数据接口。依靠数据接口做好数据分析具体有什么好处呢?数据接口能帮助企业对产品、市场等方面进行全面的了解,从而能帮助企业更好地调整运营策略,做好相关决策等......
  • EasyRTMPLive拉转推硬件设备访问端口返回404报错,该如何解决?
    TSINGSEE青犀视频的各个平台部署灵活,视频能力丰富且全面、能满足用户的多场景视频监控需求。平台各具特点,可支持多类型的设备、多协议接入,包括国标GB28181协议、RTMP/RTSP/Onvif协议、海康EHOME、海康SDK、大华SDK等,在视频流分发上,能支持全终端、全平台的视频流输出,包括RTSP、RTMP......