SpringCloud微服务小白也能搭(Hoxton.SR8)(五)Dashboard/Turbine|断路器监控

SpringCloud学习之三:Turbine聚合监控 Turbine聚合监控 Spring Cloud版本:Hoxton.SR5 1. 简介 上一章已经搭建了简单的服务提供者和服务消费者,并且服务消费者集成了断路器Hystrix,并且可通过actuator暴露的/actuator/hystrix.stream端点进行监控。但显示数据为纯文本形式,所以可进行如下优化。 使用Hystrix Dashboard进行图形化显示 可进行图形化显示,观察方便 多个微服务仅能一个一个进行查看 同一个微服务有多个实例进行负载均衡时,无法进行汇总查看 使用Turbi 阅读详情

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦

摘要

Hystrix Dashboard 是Spring Cloud中查看Hystrix实例执行情况的一种仪表盘组件,支持查看单个实例和查看集群实例。Hystrix提供了Hystrix Dashboard来实时监控HystrixCommand方法的执行情况。 Hystrix Dashboard可以有效地反映出每个Hystrix实例的运行情况,帮助我们快速发现系统中的问题,从而采取对应措施。

1. 创建一个hystrix-dashboard 服务

  

1.1 pom.xml新增 dashboard 依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!-- 包含了web -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
</dependencies>

 1.2 启动类新增 @EnableCircuitBreaker 和 @EnableDiscoveryClient

package com.zqh.www;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.core.env.Environment;

/**
 * 开启服务发现客户端
 *
 * @EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。
 */
@EnableDiscoveryClient
/**
 * 开启监控
 */
@EnableHystrixDashboard
@SpringBootApplication
public class HystrixDashboardApplication {

    private final static Logger logger = LoggerFactory.getLogger(HystrixDashboardApplication.class);

    public static void main(String[] args) {
        Environment env = SpringApplication.run(HystrixDashboardApplication.class, args).getEnvironment();
        logger.info(
                "\n----------------------------------------------------------\n\t"
                        + "Application '{}' is running! Access URLs:\n\t"
                        + "Local: \t\thttp://localhost:{}{}"
                        + "\n----------------------------------------------------------",
                env.getProperty("spring.application.name"), env.getProperty("server.port"),
                env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
    }
}

1.3 yml配置

server:
  port: 8089
spring:
  application:
    name: hystrix-dashboard
eureka:
  client:
    service-url:
      #注册地址
      defaultZone: http://root:root@localhost:8081/eureka/
  #显示服务器IP加端口
  instance:
    hostname: localhost
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

# is not in the allowed list of proxy host names.  If it should be allowed add it to hystrix.dashboard.proxyStreamAllowList.
hystrix:
  dashboard:
    proxy-stream-allow-list: "localhost"

1.4 启动服务

访问:点击访问Dashboard服务:http://localhost:8089/hystrix

注意:因为我们使用的不是https.所以我们填写的时候是填http

1.5 在hystrix-service服务中的HystrixServiceApplication添加监听

注意:是在hystrix-service服务

package com.zqh.www;

import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;

/**
 * 开启断路器功能
 */
@EnableCircuitBreaker
/**
 * 开启服务发现客户端
 * @EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。
 */
@EnableDiscoveryClient
@SpringBootApplication
/**
 * 可以取代上面三个
 */
@SpringCloudApplication
public class HystrixServiceApplication {

    private final static Logger logger = LoggerFactory.getLogger(HystrixServiceApplication.class);

    public static void main(String[] args) {
        Environment env = SpringApplication.run(HystrixServiceApplication.class, args).getEnvironment();
        logger.info(
                "\n----------------------------------------------------------\n\t"
                        + "Application '{}' is running! Access URLs:\n\t"
                        + "Local: \t\thttp://localhost:{}{}"
                        + "\n----------------------------------------------------------",
                env.getProperty("spring.application.name"), env.getProperty("server.port"),
                env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
    }

    /**
     * 解决问题:Dashboard显示Unable to connect to Command Metric Stream。
     *
     * @return
     */
    @Bean
    public ServletRegistrationBean getServlet() {
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/actuator/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }
}

1.6 填写Hystrix Dashboard页面内容

注意:
第一行参数是填写需要监听的服务链接

第二行参数是填写服务名,可以随便填,用来只是一个名字,建议于需要监听的服务名称相同

 

2.Hystrix Dashboard 图表解析

3.Hystrix 集群实例监控

如果服务集群了怎么办呢?Turbine可以聚合hystrix-service服务的监控信息,然后我们的hystrix-dashboard服务就可以从Turbine获取聚合好的监控信息。

3.1 创建一个turbine-service模块

  

3.2 pom.xml新增 turbine依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
        </dependency>
    </dependencies>

 3.3 启动类新增 @EnableTurbine和 @EnableDiscoveryClient

package com.zqh.www;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
import org.springframework.core.env.Environment;

/**
 * 开启服务发现客户端
 *
 * @EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。
 */
@EnableDiscoveryClient
/**
 * 开启监控
 */
@EnableTurbine
@SpringBootApplication
public class TurbineHystrixApplication {

    private final static Logger logger = LoggerFactory.getLogger(TurbineHystrixApplication.class);

    public static void main(String[] args) {
        Environment env = SpringApplication.run(TurbineHystrixApplication.class, args).getEnvironment();
        logger.info(
                "\n----------------------------------------------------------\n\t"
                        + "Application '{}' is running! Access URLs:\n\t"
                        + "Local: \t\thttp://localhost:{}{}"
                        + "\n----------------------------------------------------------",
                env.getProperty("spring.application.name"), env.getProperty("server.port"),
                env.getProperty("server.servlet.context-path") != null ? env.getProperty("server.servlet.context-path") : "");
    }
}

3.4 yml配置

server:
  port: 8090
spring:
  application:
    name: turbine-service
eureka:
  client:
    service-url:
      #注册地址
      defaultZone: http://root:root@localhost:8081/eureka/
  #显示服务器IP加端口
  instance:
    hostname: localhost
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${server.port}

turbine:
  # 指定需要收集信息的服务名称
  app-config: hystrix-service
  # 指定服务所属集群
  cluster-name-expression: new String('default')
  # 以主机名和端口号区分服务
  combine-host-port: true

3.5 启动服务

注意:既然是服务集群,需要相同的服务开启多个,我们监控的服务是hystrix-service,所以我们需要开启2个或多个hystrix-service,如果不会开启负载的操作请前往:SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者

 

访问:点击访问Dashboard服务:http://localhost:8089/hystrix 
重新填写第一行参数:注意是填写我们刚刚创建的turbine-service访问地址:http://localhost:8090/turbine.stream
- 

集群中的数量就会变成2,原本我们是第一行参数是直接指向hystrix-service的,后面是我们加了一个turbine-service的服务来收集指定服务的信息,第一行参数改为turbine-service

4.总结

  1. 使用 hystrix-dashboard 对 hystrix进行监控
  2. 使用 turbine 对 dashboard 信息收集,然后统一进行管理

5.gitee地址

源码参考

Netty UDP UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传输速度通常比TCP快,且系统开销较小。然而,这也意味着UDP在某些情况下可能会丢失数据包或数据包到达的顺序错乱。 阅读详情

相关推荐

【电击防护篇】电击防护技术详解:从人体效应到接地系统全解析

本文系统讲解了电击防护的关键知识,包括电流对人体的影响(如30mA是心室颤动阈值)、人体电阻特性(700Ω-6100Ω)以及电气接触防护措施。重点分析了TT、TN和IT三大接地系统的结构特点与应用场景,强调TN-S系统最安全,IT系统供电连续性最佳。详细介绍了漏电保护器(RCD)的工作原理与选型指南,建议人身防护选用30mA高灵敏度RCD。文章通过对比表总结三大系统的安全性、成本及适用场景,为电气安全设计提供实用参考。

2301_81299416的博客 1742

SpringCloud Hoxton SR8最新版,博文有点长耐心看完不说精通,至少从零搭建没问题了

SpringCloudNetflix 简介 Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-t

吴杰 7300

告别版本过低提示!微信3.9登录修复与聊天记录无缝迁移全攻略

本文详细解析了微信3.9版本过低提示的根源,并提供了完整的修复方案和聊天记录迁移指南。通过专用修复工具绕过版本检测,以及新旧版本聊天记录目录对比,帮助用户实现无缝迁移。特别提醒备份重要数据,确保操作安全。

weixin_42535461的博客 3108

SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦https://spring.io/blog/2020/08/28/spring-cloud-hoxton-sr8-has-been-released 开发工具:ideaj社区版 jar管理:maven 聚合构建 1.创建父pom项目 注意: Spring Assistant是一个插件,需要自己安装,安装教程参考 第三幅图,以前是不用强制选择的组件的,应.

itjavaee的博客 4567

PCB Layout总结

PCB Layout作为硬件设计中的一个环节,也是很重要的一个环节;在硬件电路设计合理的情况下,他其实是影响性能的一个绝对重要的指标。现在很多的PCB Layout工程师都是按照硬件工程师或者PI SI工程师给出的约束规则来完成布局布线的,这些也就是俗称的 “拉线工”。他们重复而机械的完成一块块PCB设计,一段时间设计后,他们中的一些或许已经有了这样的一些经验:哪些要做等长,哪些要走粗、哪些要平...

xydlxd118的博客 2580

避坑指南:MTK平台Widevine L1密钥安装全流程详解(含SP META工具使用与Log分析)

本文详细解析了MTK平台实现Widevine L1认证的全流程,涵盖密钥申请、格式转换、安全烧录等关键步骤,特别针对Trustonic TEE环境下的SP META工具使用与日志分析提供实用指南。帮助开发者规避常见错误,确保DRM密钥安全部署,满足高端内容保护需求。

weixin_27219587的博客 475

【SpringCloud+】Spring Cloud Hoxton.SR8升级到Spring Cloud 2020

由于近期项目做安全扫描,原项目中引用的Spring Cloud Hoxton.SR8,存在一些漏洞问题。也是因为Spring Cloud新组件的发布。所以打算升级到Spring Cloud 2020版本,在此记录一下一路的坎坷。Spring Cloud组件的使用,是有依赖关系。若不进行相关组件升级,会报一系列的问题。非常让人EMO。 示例在使用Spring Cloud 2020之后,官方文档介绍新版spring cloud关闭了bootstrap.xml读取。所以需要增加引用。 2.@EnableOAuth

诸葛小二的博客 1661

视觉提示学习(Prompt Learning):CV领域的GPT时刻?

视觉提示学习(Prompt Learning):CV领域的GPT时刻? ,人工智能,计算机视觉,大模型,AI,在人工智能技术不断演进的今天,计算机视觉(Computer Vision,CV)作为人工智能领域的重要分支,始终致力于让机器 “看懂” 世界。从早期基于传统特征工程的图像识别方法,到深度学习时代卷积神经网络(Convolutional Neural Networks,CNN)的崛起,CV 领域经历了多次重大变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

SpringCloud微服务小白也能搭(Hoxton.SR8)(七)Gateway|服务网关

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 SpringCloud微服务小白也能搭(Ho.

itjavaee的博客 1770

运动想象 (MI) 分类学习系列 (19) : EEG-TransNet

本文提出了一种基于注意力机制的卷积神经网络(EEG-TransNet),用于运动想象脑电图(MI-EEG)解码。该方法创新性地通过平均池化和方差池化提取多模态时间信息,并结合自注意力模块捕获长期依赖关系。消融实验表明,方差池化比最大池化更有效(p<0.05),且注意力模块和卷积编码器对特征判别性至关重要。可视化分析验证了该方法能学习到更具判别性的紧凑特征。该工作为MI-EEG解码提供了新的多尺度时间信息融合视角,代码已开源。

走在深度学习前沿的小宋 358

高云FPGA系列教程(7):ARM GPIO外部中断

高云GN1NSR-4C共有16个GPIO,每个GPIO可配置成输入或输出模式,支持中断输入,触发方式可选择:上升沿、下降沿、高电平、低电平触发。中断优先级可通过NVIC进行设置,支持 0-7 级可编程中断优先级。

whik1194的博客 1375

SpringCloud微服务搭建(Hoxton.SR8)(二)-- springcloud gateway以及其动态路由搭建

SpringCloud微服务搭建(二)-- springcloud gateway以及其动态路由搭建一、基本的gateway项目搭建1、项目说明2、代码实现3、测试二、gateway进阶之动态路由配置1、代码实现2、测试三、源码 一、基本的gateway项目搭建 1、项目说明 这里我们不讲什么是springcloud gateway,网上类似的文章一大堆,我们直接上代码实践,这里需要用到三个项目,分别是eureka注册中心、gateway网关项目、consumer项目。 其中eureka注册中心不必说,管理

书生灬今天不吃饭的博客 773

ubuntu下编译qtwebengine

ubuntu qtwebengine

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 1463

从零搭建微服务SpringCloud Hoxton.SR8 + Spring Boot 2.3.2.RELEASE

JDK:1.8 maven: 3.8.1 Spring Boot: 2.3.2.RELEASE Spring Cloud: Hoxton.SR8 Spring Cloud Alibaba: 2.2.5.RELEASE 开发工具: IntelliJ IDEA 2021.1x64 系统: Windows 10 Spring Boot、 Cloud、Cloud Alibaba三者对应的关系: Spring Cloud 基于 Spring Boot Spring Cloud Alibaba...

supersolon的专栏 3164

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringCloud微服务搭建(Hoxton.SR8)(一)-- Eurka的注册与发现

这里我们不再介绍SpringCloud的知识,直接搭建框架。 这里我们选择将不同的模块创建在一个父项目下。 一、创建父项目 1、新建一个springboot项目 2、pom文件内容(依赖) <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-

书生灬今天不吃饭的博客 663

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【原创】SpringCloud关于版本号的正确使用姿势(Hoxton)

SpringCloud最让新手头疼的就是它的版本号问题,一旦版本号匹配不上就会报各种奇奇怪怪的错,简直令人抓狂!! 其实SpringCloud已经非常友善了,版本管理也是相当的简单,只是新手不懂罢了。首先去官网,这里以SpringCloud的Hoxton.SR7版本来举例子,这是到2020年8月20日最新的SpringCloud版本了。 官网地址:https://spring.io/projects/spring-cloud/ SpringCloud的由于包含了一大堆组件,而且各个组件的版本号都不一样

DCTANT的博客 9414

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SpringCloud-微服务架构演变

SpringCloud-微服务架构演变

小学生波波 3520

SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者

Spring Cloud Netflix Ribbon 是Spring Cloud Netflix 子项目的核心组件之一,主要给服务间调用及API网关转发提供负载均衡的功能,在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候,如何保证负载均衡是个不得不去考虑的问题。负载均衡可以增加系统的可用性和扩展性,当我们使用RestTemplate来调用其他服务时,Ribbon可以很方便的实现负载均衡功能。本文将对其用法进行详细介绍。 SpringCloud微服务小白也能搭(Hoxton.SR8)(.

itjavaee的博客 1008

SpringCloudAlibaba 集成Dubbo、Nacos 以及Hoxton.SR12版本问题解决

网上找了好些资料进行以Nacos为注册中心的Dubbo集成,可能因为版本原因一直得不到友好的解决,调了整整一天,终于解决了。 先来看我聚合工程的父文件pom.xml:

qq_50909707的博客 4311

SpringCloud(Hoxton.SR7版&alibaba)初级篇

周阳微服务架构与SpringCloud 技术 版本 cloud Hoxton.SR1 boot 2.2.2.RELEASE cloud alibaba 2.1.0.RELEASE java java8 Maven 3.5及以上 Mysql 5.7及以上

知行 1733

spring-cloud-Hoxton.SR6 (springBoot2.2.x-2.3.x)学习篇(一)

spring-cloud-Hoxton.SR6 (springBoot2.2.x-2.3.x)学习篇(一) cloud版本: Hoxton.SR6 boot版本: 2.2.x-2.3.x 目前cloud官网最新的版本为Hoxton.SR6 (基于boot 2.3.x构建) 1.什么是微服务 官网: https://www.martinfowler.com/articles/microservices.html 官方定义:微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于

胖虎儿的博客 1万+

SpringCloud历史版本官网查询方法

查找springCloud官网历史版本方法看文档只看官网查看历史版本的方法官方最新版本对应各版本链接 看文档只看官网 目前最新的springCloud版本是Hoxton.SR6, 对应的官网地址: Hoxton.SR6 查看历史版本的方法 举例:以下历史版本地址: Hoxton.SR1的官网地址: https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/ Hoxton.SR3的官网地址: https://clo

Utrix的博客 2976

Spring Cloud 学习记录

今天是2020-10-6日 打开spring cloud的主页(https://spring.io/projects/spring-cloud#overview) 首先就看到最新的版本号 : Spring Cloud Hoxton.SR8 大版本号:Hoxton (从ABCDEFGH往上排),这就是H版 小版本号:SNAPSHOT:快照版本;随时可能修改 M:MileStone,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。 SR:Service Release,SR1表示第1个正..

ggaofengg的专栏 271

Spring Cloud 组件学习

Spring Cloud hello Spring Cloud 版本 Release Train Boot Version Hoxton 2.2.x, 2.3.x (Starting with SR5) Greenwich 2.1.x Finchley 2.0.x Edgware 1.5.x Dalston 1.5.x Spring Boot 2.3.4 + Spring Cloud Hoxton.SR8 spring cloud 标配 <propertie

so 162

SpringCloud微服务小白也能搭(Hoxton.SR8)(八)Sleuth|服务链路跟踪

简单上手,直接照搬,就可搭建微服务(Hoxton.SR8) 2020.8.28发布,SpringCloud搭建的文章正在整理,干货不要错过哦 SpringCloud微服务小白也能搭(Hoxton.SR8)(一)Eureka|服务的注册与发现 SpringCloud微服务小白也能搭(Hoxton.SR8)(二)Ribbon|服务消费者 SpringCloud微服务小白也能搭(Hoxton.SR8)(三)Feign|服务消费者 SpringCloud微服务小白也能搭(Ho.

itjavaee的博客 785

springcloud_入门示例_Hoxton.SR8

参考文档 、 参考文档1 、 参考文档2 Spring cloud 入门示例 使用spring cloud搭建微服务过程,集成eureka(注册中心)、Zuul(网关)、Feign(本地化的远程调研、负载均衡)、hystrix(熔断器)。 使用的spring cloud 是Hoxton.SR8版本。 父工程 <!-- 父项目pom.xml --> <parent> <groupId>org.springframework.boot</groupId>

蜗牛跑的快 1476
上一篇: node 设置 淘宝源
下一篇: SpringCloud微服务小白也能搭(Hoxton.SR8)(六)Zuul|服务网关
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值