学习总结与分享-dubbo的了解与初步使用

Dubbo系列讲解之服务注册【3万字长文分享】 接下来看看是怎么获取到Invoker的,根据我们的SPI的知识,在没有参数中没有指定扩展点时,会使用默认@SPI注解上默认指定的扩展点,由于在ProxyFactory类上的注解为@SPI(“javassist”),所以可以知道这里获取到的扩展点为JavassistProxyFactory的对象,在进入JavassistProxyFactory的getInvoker()方法之前,根据我们学习SPI的知识,或许该扩展点存在一些包装,这里就不详细说明了,主要讲服务发布的主要流程。通过Invoker 阅读详情

什么是dubbo?
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。
Dubbo是阿里巴巴SOA服务化治理方案的核心框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
通俗来讲dubbo是一种服务与服务之间的通信方式,是为了解决分布式架构服务器所产生的一些问题的框架。
什么是分布式系统架构?
分布式架构的出现是为了解决在业务量与流量日益增长的情况下集中式系统的所产生的的种种弊端。
集中式系统:
由一台或多台服务器组成的中心节点,数据集中存储在这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,整个系统的所有功能均由其集中处理。其部署简单,不用考虑多个节点间的分布式协作问题。
集中式系统的问题:

  1. 随着业务量日益增长,项目中的代码越来越冗余繁琐,业务人员的变更导致代码也越来越难维护,最终就是项目十分的庞大并且繁杂,项目编译启动时间十分漫长,发布、测试麻烦。
  2. 随着流量和并发量的增长,单台服务器已无法满足峰值时的流量,我们就需要增加服务器和搭建集群以对抗峰值并发,但是日常并发量又十分浪费服务器资源
  3. 代码的重用性太低,例如查询用户的接口不仅仅当前项目需要使用,同样是我们维护的其他项目也想使用,但是如果是集中式系统,同样的代码我们就要重新写一份。

此时,分布式系统就应运而生,他是按照不同的模块,将一个项目拆分成多个子模块,每个模块之间可各自独立运行,每个模块负责一个功能点服务。各个模块之间的调用使用某种通信协议来完成,这就是dubbo框架的作用。分布式系统很好的解决了上面的问题,将项目变得十分的灵活。

但是分布式系统也会带来一些问题:
1、部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂。

2、架构设计变得复杂、技术成本变高、学习难度增加。

3、服务越来越多,管理变得复杂。

4、服务与服务之间的通信变得复杂。

3、保证数据的一致性难度增加。

其中服务与服务之间的通信,我们是否可以使用常见的远程通信方式呢,比如:
1、Http
连接个数:多连接
连接方式:短连接
传输方式:同步
序列化格式:json
传输协议:HTTP
2、RMI
连接个数:多连接
连接方式:断连接
传输方式:同步
传输格式:JAVA标准二进制序列化。
传输协议:Socket
3、webservice
连接个数:多链接 连接方式:短连接
序列化格式:SOA文本序列化
传输协议:http传输方式:同步
4、Hessian
连接个数:多连接
连接方式:短连接
传输方式:同步
序列化格式:Hessian二进制格式
传输协议:HTTP
其实这些方式也可以请求调用到我们的服务模块,但是这些通信方式没有对分布式衍生的其他问题做处理,只是解决了通信的问题而已:
1、服务配置地址难维护
2、无法动态扩容
3、没有监控(调用量、响应时间、权重配置)
4、没有熔断机制
5、调用关系难维护
而dubbo采用的通信方式:
dubbo
连接个数:单链接(可设置多个连接)
连接方式:长连接
序列化格式:Hessian二进制格式(Hessian2)
传输协议:TCP
传输方式:NIO
就对上述的问题进行了解决。
那么,Dubbo能做什么?
1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
2、软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。
(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。
并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover,降低对F5硬件负载均衡器的依赖,也能减少部分成本。
(2) 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
这时,需要自动画出应用间的依赖关系图,以帮助架构师理清理关系。
(3) 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?
为了解决这些问题,第一步,要将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标。
其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到响应时间到达阀值,记录此时的访问量,再以此访问量乘以机器数反推总容量。
dubbo的使用(暂不使用注册中心)
新建一个maven项目,创建两个子模块,假定我们想要创建用户服务模块,所以我们需要一个user-api模块,提供用户服务所需的接口

Model

@Data
@ToString
public class User implements Serializable{

	private  Integer id;
    private String name;

    public User(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
}

Service

public interface UserService {
    User getUser(String name);
}		

再创建一个服务的生产方,user-provider模块
引入dubbo的pom文件

<dependencies>
    <dependency>
        <artifactId>user-api</artifactId>
        <groupId>com.lerning.dubbo</groupId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.5.3</version>
    </dependency>
</dependencies>

ServiceImpl实现UserSevice

public class UserServiceImpl implements UserService {

    public User getUser(String name) {
        System.out.println("调用服务成功");
        User user =new User(222,name);
        System.out.println(user.toString());
        return user;
    }
}

向dubbo注册服务,创建user-provider.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="dubbo-user" />

    <dubbo:protocol name="dubbo"/>

    <dubbo:registry address="N/A"/>

    <dubbo:service interface="com.lerning.dubbo.user.api.service.UserService" class="com.lerning.dubbo.user.service.UserServiceImpl"/>
</beans>

创建启动类启动服务

public class UserProviderAapplication {

    public static void main(String[] args) {
        Main.main(args);
    }
}

创建新的消费方项目,为user-consumer

引入dubbo与刚刚生产的user-api的pom文件(略。)

发现刚刚我们注册的服务,创建user-consumer.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <dubbo:application name="user-consumer"/>

   <dubbo:protocol name="dubbo" port="20880"/>

    <dubbo:registry address="N/A"/>

    <dubbo:reference interface="com.lerning.dubbo.user.api.service.UserService" id="userService" url="dubbo://192.168.30.1:20880/com.lerning.dubbo.user.api.service.UserService"/>

</beans>

创建启动类,测试dubbo服务

public class TestDubo {

    public static void main(String[] args) {

        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("user-consumer.xml");
        UserService userService=(UserService) context.getBean("userService");
        User user=userService.getUser("duanpan");
        System.out.println(user.toString());

    }
}

启动,发现我们成功的取到了UserService,生成了User对象,并且服务生产方控制台也成功打印出了“调用服务成功”。

Dubbo学习之SPI实战与debug源码 目录绪论环境搭建dubbo-demo-interfacedubbo-demo-xmldubbo-demo-xml-provider源码跟踪getExtensioncreateExtensiongetExtensionClassesloadDirectoryloadResourceinjectExtension总结 绪论 上篇文章《dubbo学习之源码创建属于自己的dubbo-demo》溪源带着大家简单搭建了自己的demo,基础环境已经搭建完成,从这篇文章开始,溪源便开始学习并总结Dubbo的相关机制,此篇文 阅读详情

相关推荐

Jmeter调用dubbo接口(使用官方插件)

       最近使用工作中使用jmeter调用dubbo接口进行接口测试,在实际尝试中遇到了一些问题,这里把这些问题整理了出来,特编写此文档,用作记录,同时分享给有需要的童鞋。       从我最近一段时间的测试来看,Jmeter调用dubbo接口主要有两种方式(可能存在我不知道的方式,如哪位知道,欢迎指点),一种是通过java调用实现;一种是通过Jmeter的dubbo插件来实现。    ...

qingyun0922的专栏 1万+

Dubbo技术分享

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典Java核心知识整理Java核心知识Spring全家桶(实战系列)其他电子书资料Step3:刷题既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。以下是我私藏的面试题库:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

m0_74530944的博客 603

基于Dubbo Spring Cloud的架构分享

基于Dubbo Spring Cloud的架构思路,使用Spring Gateway做Dubbo网关讨论。

程序员小Y的博客 2027

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。 二、什么是dubbo Dubbo是阿里巴巴提供的开源的SOA服务化治理的技术框架,据说只是剖出来的一部分开源的,但一些基本的需求已经可以满足的,而且扩展性也非常好(至今没领悟到扩展性怎么做到的)

周绍禹-whuiss 8万+

分布式基础技术平台_Dubbo技术分享.pptx

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。特此技术分享给需要的朋友

【UV打印机】PrintExp打印软件教程(四)-设置校准电压

序号名称功能说明1校准材料设置定义当前打印材料,不同的材料参数绑定不同的校准值2向导勾选进行校准向导操作3校准类型包括喷头安装、步进校准、喷头间距、套色校准、双向校准4类型子项同类型子项5操作步骤校准存在步骤和校准说明示意图。

Print World的专栏 5074

Dubbo高手之路1,Dubbo原理和机制,Dubbo的核心组件

Dubbo是一种高性能、轻量级的分布式服务框架,它的设计目标是为大规模分布式应用提供支持。

学Java,找哪吒 4446

使用petalinux做嵌入式设计开发(1)

1.创建vivado工程,建立硬件环境,最终导出hdf文件 既可以在windows系统下的vivado上编写硬件工程并导出hdf文件,也可以在linux系统下的vivado中编写硬件工程并导出hdf文件。(对于windows系统下导出的hdf文件还需要传递到linux系统下的文件夹中。) 2.以hdf硬件文件为基础创建,配置,编译,打包petalinux工程,导出linux系统所需镜像文件。 具体步骤: (0)设置环境变量 设置环境变量使得我们可以直接使用petalin...

plotup的博客 2076

cloud 微服务总结

cloud 微服务总结 1、dubbo和cloud的区别: 2、nacos服务注册原理: 3、nacos集群: 4、Ribbon原理及内部算法 5、网关种类、作用、原理、配置 6、限流、熔断、降级区别 7、 8、 9、 10、 ...

nandao158的博客 604

体系结构学习-6-超标量处理器

 MIPS32-5段流水线采用了指令级并行方式(5个流水段同时运行5条指令)提升系统吞吐率,是一种标量处理器(CPI≥1CPI \ge 1CPI≥1),但是一个周期一条指令以及无法满足现代计算机需求了。 超标量处理器(Superscalar) 1、基本思想:增强指令集并行,让每个周期执行更多指令,实现 CPI<1CPI<1CPI<1 。(IPC=1/CPIIPC = 1...

qq_40891899的博客 1212

CST微带贴片天线设计全流程:从S11优化到辐射方向图分析

微带贴片天线是现代无线通信设备中的关键部件,其设计依赖于电磁场理论与仿真软件的结合。理解天线的基本工作原理,如谐振频率、阻抗匹配和辐射机制,是进行有效设计的基础。通过电磁仿真,工程师可以精确预测天线性能,避免传统手工计算的误差。在工程实践中,CST Studio Suite作为行业标准的三维电磁仿真工具,能够高效处理复杂的边界条件与材料属性,帮助优化S11参数和辐射方向图。本文聚焦于2.4GHz Wi-Fi频段微带贴片天线的完整设计流程,详细解析了端口设置、网格划分等关键步骤,并针对常见的仿真失败问题提供了

weixin_30784501的博客 459

day03

今天见识到了maven的强大,还写了dubbo的Demo,好像结果没有运行出来,算是已经了解公司的开发流程了。争取早日可以敲代码。对了,今天java圣经到了。争取在一个半月之内看完吧。over

菜鸟的博客 175

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2401

从理论到实践,必须了解的部分Dubbo配置

前面我们学习了很多理论知识,但一切理论都是为了实践。Dubbo作为一个框架当然有很多配置点,其中有些配置不起眼,但却很重要。笔者曾经分享过一起内存溢出的问题,其中就有接口超时时间配置得太长的原因,因为数据量比较大,三方接口迟迟无法返回结果。而超时时间又很长,最终大量线程阻塞在调用上,资源无法释放,造成内存溢出。由此可见,合理的参数配置是多么的重要

战斧的博客 8万+

芒果YOLOv11改进175:DCNv4卷积,全网首发纯Pytorch实现代码,无需cuda编译|即插即用,一键运行:高效可变形卷积网络:重新思考视觉应用的动态和稀疏算子

芒果YOLOv11改进:DCNv4卷积,全网首发纯Pytorch实现代码,无需cuda编译|即插即用,一键运行:高效可变形卷积网络:重新思考视觉应用的动态和稀疏算子

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1296

YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新的ELA注意力机制,并构建C2PSA_ELA

为了解决这些限制,本文介绍了一种高效的本地注意力(ELA)方法,实现了一个简单的结构,大幅度的性能改善。我们精心设计了ELA中的三个超参数,产生了四个不同的版本:ELA-T,ELAB,ELA-S和ELA-L,以满足不同视觉任务的具体要求,如图像分类,目标检测和语义分割。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 1284

Dubbo - Dubbo的SPI机制

SPI是什么? SPI全称service provider interface,比如你有一个接口,现在这个接口有三个实现类,那么在系统运行的时候对这个接口到底选择哪个实现类呢?这就需要SPI了,需要根据指定的配置或者默认的配置,去找到对应的实现类加载进来,然后用这个实现类的实例对象。 举个例子: 你有一个接口A,A1/A2/A3分别是接口A的不同实现,你通过配置接口A = 实现类A2,那么系统在...

yang的博客 3万+

把 MCP Server 直接装进 SAP ABAP:用 Unlimited Display Tools 打通 Agentic SDK 与 SAP ECC / S/4HANA 的最后一公里

摘要:AI与SAP集成的MCP解决方案 企业在AI集成中面临工具链复杂、数据对接繁琐的挑战。Model Context Protocol (MCP)通过标准化工具与数据暴露方式,将集成复杂度从N×M降至N+M。在SAP生态中,MCP Server for SAP直接部署于ABAP层,利用DDIC/CDS视图对接各类Agent SDK,避免中间件风险。 MCP核心包含三类对象: Tools:带元数据的可执行动作 Resources:结构化上下文数据 Prompts:可参数化提示模板 ABAP层实现MCP Se

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 681

初识分布式服务管理框架-Dubbo

欢迎加入DUBBO交流群:259566260 Dubbo是阿里下面的一个开源分布式服务管理框架。它的产生是因为分布式的产生而产生的。下面将几点分享一下我对Dubbo的初步认识。通过dubbo的官方文档可以了解一下怎么使用以及基本的设计思想。http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm下面分享一下我对Dubbo的理解,可能其中

JDream314的专栏 9858

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

dubbo学习之源码创建属于自己的dubbo-demo

上篇博文<一路踩坑构建Dubbo源码>谈论了如何本地构建dubbo源码,最近溪源也在努力的学习dubbo相关知识和机制,学习过程也可以称之苦不堪言吧。dubbo官网是入门学习资源重要之一;故溪源先分享中文官网:dubbo中文手册。 上网文章中也清晰地带着大家成功运行dubbo-demo;对于像溪源这样的新手接触dubbo,学习源码估计都很难找到入手的方法,溪源也是走了不少冤枉路,所以特此写了一篇入手dubbo源码的文章,希望能够帮助伙伴们降低时间浪费,少走弯路。溪源这篇带着大家在dubbo-de

增量星球 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Dubbo 使用教程和原理分析

Dubbo 使用教程和原理分析代码演示

小凯的博客 1918

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

简单了解Docker、Dubbo

简单了解Docker、Dubbo 以Docker为例的容器 Docker是什么 Docker的原理 以Dubbo为例的RPC调用框架 如何理解REST、RPC Dubbo是什么 简单了解Docker、Dubbo 以Docker为例的容器 Docker是什么 主要体现在1.隔离2.开销小。 Docker的组件有哪些。Docker Client用来管理本地或远程的服务器,Do...

Sonihr的犀牛园 1435

我的Dubbo学习计划

大家好,我是阿斌。从今天开始,我们就要开始学习一个优秀的RPC框架-Dubbo了。从大致的使用流程,再到深入探究源码,预计的学习时间是在三周左右。 开始学习 在学习之前,我们可以先了解一下,一个优秀的RPC框架能够提供什么样的能力? 远程调用 动态代理 序列化 网络通信编码 对调用方来说,只需要调用一个接口,而接口最终的实现,是一个屏蔽了底层细节的proxy。proxy会帮助我们将参数序列化,编码,网络传输给远程服务。在提供者端,会统一解析请求,根据映射关系找到具体的接口实现,并返回结果。 在网络传

1997

dubbo(5):使用dubbo进行业务分离与dubbo-admin的使用

dubbo是分布式远程调用框架,如何利用dubbo将前后端进行分离。

不积跬步,无以至千里 1035

学习Dubbo-带你通过源码看看dubbo对netty的使用,面试mysql优化

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题。注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友互联网工程师必备的面试1000题而且从上面三家来看,算法与数据结构是必备不可少的。

2401_84438067的博客 807

Java最新学习Dubbo-带你通过源码看看dubbo对netty的使用,华为财经2024春招面试

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来目录:部分内容截图:本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取。

2401_84692513的博客 655
上一篇: 学习总结与分享-zookeeper的安装和java下的基础使用
下一篇: 学习总结与分享-spring篇之IOC(控制反转)浅析
VolcanoWec
博客等级 码龄8年 0粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值