微服务系列(二)常见的各类组件名称介绍

Feign

https://www.javatpoint.com/using-feign-rest-client-for-service-invocation
Feign 是一个声明式的、模板化的 HTTP 客户端工具,用于简化基于 HTTP 的服务间通信。它是 Netflix 开源的一部分,旨在简化和优化服务之间的 RESTful API 调用。

使用 Feign,开发者可以定义一个接口,通过注解的方式来描述服务间的 HTTP 调用。Feign 根据接口定义自动生成实现类,隐藏了底层的 HTTP 请求细节,使得服务间的通信更加简单和易于维护。

Feign 的主要特点和优势包括:

  1. 声明式的 API 定义:通过使用注解,开发者可以直接在接口中定义 HTTP 请求的方法、URL、参数、请求体、头部等信息。这样,开发者只需关注业务逻辑,而不必编写大量的请求代码。

  2. 自动化的编解码:Feign 可以根据请求和响应的数据类型,自动进行序列化和反序列化操作。它支持多种数据格式,如 JSON、XML 等,开发者无需手动处理数据的转换。

  3. 负载均衡和服务发现:Feign 集成了 Netflix Ribbon,可以与服务注册中心(如 Eureka)结合使用,实现负载均衡和服务发现的功能。它可以自动选择可用的服务实例,并将请求分发到相应的服务上。

  4. 容错和回退:Feign 可以与 Netflix Hystrix 集成,实现容错和回退机制。当远程服务不可用或响应超时时,可以定义回退逻辑,避免服务级联故障。

  5. 配置简单灵活:Feign 提供了一组可配置的选项,可以调整请求的超时时间、连接池大小、重试机制等。开发者可以根据具体需求进行配置,以满足性能和可靠性要求。

Feign 在微服务架构中被广泛应用,特别是与 Spring Cloud 组合使用时。它简化了服务间的通信,提供了一种便捷的方式来调用 RESTful API,同时集成了负载均衡、服务发现和容错等功能,帮助开发者构建可靠和高效的分布式系统。

Hystrix

https://github.com/Netflix/Hystrix
Hystrix 是 Netflix 开源的一个用于处理分布式系统中的延迟和容错的库。它是一种容错机制,旨在通过隔离、熔断和回退等技术来提高分布式系统的弹性和可靠性。

Hystrix 的主要特点和功能包括:

  1. 隔离:Hystrix 通过将不同的服务调用隔离在独立的线程池中,防止一个服务的故障影响到其他服务的稳定性。这种隔离机制可以有效地控制资源的使用和故障的传播。

  2. 熔断:Hystrix 实现了熔断模式,通过监控服务的调用情况,当服务调用失败率达到一定阈值时,会自动触发熔断操作,阻止对该服务的进一步调用。这可以防止故障服务的连锁效应,并快速恢复正常的服务调用。

  3. 回退:当服务调用失败或熔断时,Hystrix 提供了回退逻辑,即在发生故障时返回预设的默认值或执行备用的逻辑。这样可以保证在服务不可用时,系统仍能提供有限的功能,并提供更好的用户体验。

  4. 实时监控和指标收集:Hystrix 提供了实时的监控面板和指标收集功能,开发者可以通过监控界面查看各个服务的运行情况、成功率、错误率等指标,并进行故障诊断和性能优化。

  5. 配置灵活:Hystrix 具有丰富的配置选项,开发者可以根据具体的需求进行配置,包括超时时间、熔断阈值、线程池大小等。这使得开发者可以根据应用程序的特性和性能需求进行调优和配置。

Hystrix 可以与各种编程语言和框架集成,并在分布式系统中扮演关键角色,特别是在微服务架构中。通过引入 Hystrix,开发者可以提高系统的弹性和可靠性,有效地处理故障和延迟,并为用户提供更好的服务体验。

Turbine

https://github.com/Netflix/Turbine
Turbine 是 Netflix 开源的一个用于监控 Hystrix 产生的指标数据的工具。它可以聚合多个服务的 Hystrix 指标数据,以实时监控和可视化的方式展示整个系统的状况。

Turbine 的主要功能和特点包括:

  1. 数据聚合:Turbine 可以收集多个服务的 Hystrix 指标数据,并将其聚合到一个中心化的监控数据源中。这使得开发者可以通过一个统一的监控界面来查看和分析多个服务的运行情况。

  2. 实时监控:Turbine 提供了实时的监控能力,可以显示各个服务的 Hystrix 指标数据,包括请求成功率、失败率、超时率、线程池使用情况等。这使得开发者可以及时了解系统的健康状况,发现并解决潜在的问题。

  3. 可视化界面:Turbine 提供了一个可视化的监控界面,以图表和图形的形式展示指标数据。开发者可以通过直观的图表来观察服务的性能和趋势,便于快速识别异常和优化性能。

  4. 高度可定制:Turbine 提供了灵活的配置选项,开发者可以根据需要进行自定义配置,包括数据源、聚合方式、监控界面的样式等。这使得 Turbine 可以适应不同的系统架构和监控需求。

Turbine 可以与其他监控工具(如 Hystrix Dashboard、Elasticsearch、Grafana 等)结合使用,构建强大的分布式系统监控和故障诊断解决方案。通过使用 Turbine,开发者可以更好地了解系统的运行情况,快速发现问题并进行调优,提高系统的可靠性和性能。

Spring Cloud Bus

https://cloud.spring.io/spring-cloud-bus/reference/html/
Spring Cloud Bus 是 Spring Cloud 提供的一个用于消息传递和事件驱动的分布式系统组件。它基于消息代理(如 RabbitMQ 或 Kafka)实现,可以在分布式系统中实现配置的动态刷新、事件的广播和传递等功能。

Spring Cloud Bus 的主要功能和特点包括:

  1. 配置的动态刷新:Spring Cloud Bus 可以将配置的更改事件广播到分布式系统的各个节点。当配置发生变化时,只需向一个节点发送刷新请求,然后通过消息传播机制将刷新请求传递给其他节点,从而实现配置的动态刷新。

  2. 事件的广播和传递:Spring Cloud Bus 可以将事件广播到分布式系统中的所有节点。通过发送消息,可以触发各个节点上的事件监听器执行相应的操作。这使得系统中的各个节点可以实现协作和响应,从而实现分布式系统的事件驱动架构。

  3. 消息代理的集成:Spring Cloud Bus 支持多种消息代理,包括 RabbitMQ 和 Kafka。通过集成消息代理,可以实现消息的可靠传递、高吞吐量和可扩展性。

  4. 可扩展和可定制:Spring Cloud Bus 提供了可扩展和可定制的机制,可以根据具体的需求进行配置和扩展。开发者可以选择适合自己系统的消息代理、配置刷新的触发方式以及自定义事件等。

Spring Cloud Bus 通过消息传递机制实现了分布式系统中的配置刷新和事件驱动的功能,使得系统的各个节点能够实时响应变化和协同工作。它是构建弹性、可扩展和可靠分布式系统的重要组件之一。

Shiro

https://shiro.apache.org/
Shiro(Apache Shiro)是一个强大而灵活的开源安全框架,用于在 Java 应用程序中实现身份认证、授权和会话管理等安全功能。它提供了一套易于使用的 API 和丰富的功能,帮助开发者构建安全性高、可扩展的应用程序。

Shiro 的主要功能包括:

  1. 身份认证:Shiro 提供了多种身份认证的方式,包括用户名/密码认证、基于 LDAP 的认证、基于记住我功能的认证等。开发者可以根据需求选择合适的认证方式,并通过 Shiro 提供的 API 实现用户身份认证。

  2. 授权:Shiro 具有灵活的授权机制,支持基于角色的访问控制(RBAC)和基于权限的访问控制(ABAC)。开发者可以通过编程方式或配置文件定义角色和权限,并使用 Shiro 的授权 API 来控制用户对资源的访问权限。

  3. 会话管理:Shiro 提供了会话管理功能,支持常见的会话操作,如创建会话、获取会话、销毁会话等。它还支持会话持久化,可以将会话数据存储在内存、数据库或其他持久化介质中,以便实现会话的跨服务器共享和持久化。

  4. 密码加密:Shiro 提供了密码加密和哈希算法的支持,可以确保用户密码的安全性。开发者可以使用 Shiro 提供的加密算法对密码进行哈希加密,并在认证过程中进行密码匹配。

  5. Web 支持:Shiro 提供了对 Web 应用程序的良好支持,可以与常见的 Web 框架(如 Spring、Spring Boot、Struts 等)无缝集成。它可以处理 Web 请求的身份认证和授权,以及跨请求的会话管理。

  6. 容器无关性:Shiro 可以在任何 Java 环境中使用,不依赖于特定的容器或框架。这使得开发者可以在各种环境中使用 Shiro,包括独立应用程序、Web 应用程序和分布式系统。

Shiro 的设计目标是简单、直观和易于使用,同时提供强大的安全功能。它是一个成熟的安全框架,广泛应用于各种 Java 应用程序和框架中,帮助开发者实现身份认证和授权等关键安全功能。

Thymeleaf

https://www.thymeleaf.org/
Thymeleaf 是一种流行的服务器端 Java 模板引擎,用于构建动态的 Web 应用程序。它具有简洁的语法和强大的功能,可以与 Spring 框架完美集成,使开发者能够轻松地生成动态内容并将其呈现给用户。

Thymeleaf 的主要特点和功能包括:

  1. 自然的模板语法:Thymeleaf 的模板语法非常简洁和直观,类似于 HTML,易于理解和编写。开发者可以在模板中使用标签、属性和表达式来表示动态内容,并与静态内容无缝结合。

  2. 完整的表达式语言:Thymeleaf 提供了强大的表达式语言,称为 Thymeleaf 表达式语言(Thymeleaf Expression Language,简称 Thymeleaf EL)。它可以在模板中进行条件判断、迭代循环、属性绑定等操作,使模板更具动态性和灵活性。

  3. 与 HTML 的兼容性:Thymeleaf 模板可以直接在浏览器中预览,因为它是基于 HTML 标准的。即使在没有模板引擎的支持下,模板仍然可以正常显示并具备良好的可读性。

  4. 强大的国际化支持:Thymeleaf 提供了丰富的国际化和本地化功能,开发者可以轻松地在模板中处理多语言和区域设置相关的内容。

  5. 完善的 Spring 集成:Thymeleaf 可以与 Spring 框架完美集成,通过 Thymeleaf-Spring 模块,开发者可以方便地在 Spring MVC 中使用 Thymeleaf 模板引擎,并利用 Spring 提供的功能,如表单处理、数据绑定等。

  6. 可扩展性:Thymeleaf 支持自定义标签、方言和处理器等扩展机制,使开发者可以根据特定需求扩展和定制 Thymeleaf 的功能。

Thymeleaf 是一个功能强大、易于使用和可扩展的模板引擎,广泛应用于构建动态 Web 应用程序和生成动态内容。它提供了丰富的特性和与 Spring 的紧密集成,使开发者能够以简单、高效的方式开发具有吸引力和可维护性的 Web 应用程序。

MyBatis

https://mybatis.org/mybatis-3/zh/index.html
MyBatis 是一个开源的持久层框架,它提供了与数据库交互的简单且灵活的方式。MyBatis 的目标是简化数据库访问,并提供对 SQL 的灵活控制,同时减少开发人员的重复工作量。

MyBatis 的主要特点和功能包括:

  1. 简化的 SQL 编写:MyBatis 使用 XML 或注解的方式来编写 SQL,使开发者能够以简洁、直观的方式定义和管理 SQL 语句。SQL 语句与 Java 代码分离,提高了代码的可读性和维护性。

  2. 灵活的参数映射:MyBatis 支持多种参数映射方式,包括基本类型、POJO 对象、Map 等。开发者可以根据需求选择合适的参数类型,并利用 MyBatis 提供的映射机制将参数传递给 SQL 语句。

  3. 强大的结果集映射:MyBatis 提供了灵活而强大的结果集映射功能,可以将查询结果映射到 Java 对象中。开发者可以通过配置或注解来定义结果集的映射规则,使得结果的获取和处理更加便捷。

  4. 缓存支持:MyBatis 提供了一级缓存和二级缓存的支持,可以有效地减少对数据库的访问次数,提升应用程序的性能。一级缓存是会话级别的缓存,而二级缓存是全局级别的缓存。

  5. 插件机制:MyBatis 提供了插件机制,开发者可以通过插件扩展 MyBatis 的功能。插件可以拦截 MyBatis 的方法调用,并在执行前后进行自定义的处理。

  6. 与 Spring 的无缝集成:MyBatis 可以与 Spring 框架无缝集成,通过 Spring 提供的支持,可以更方便地配置和管理 MyBatis 的相关组件。

MyBatis 简化了数据库访问的过程,提供了灵活性和可扩展性,使开发者能够更加专注于业务逻辑的实现。它在许多 Java 项目中广泛应用,被认为是一种优秀的持久层框架。

Oauth2.0

“auth-oauth2” 是指 OAuth 2.0(Open Authorization 2.0)授权协议,它是一种用于保护和授权 Web 应用程序和 API 访问的开放标准协议。OAuth 2.0 允许用户授权第三方应用程序代表他们访问受保护的资源,而无需将用户名和密码直接提供给第三方应用程序。

OAuth 2.0 的主要概念包括:

  1. 资源所有者(Resource Owner):通常是最终用户,他们拥有受保护资源的所有权。

  2. 客户端(Client):第三方应用程序,它希望访问资源所有者的受保护资源。

  3. 授权服务器(Authorization Server):负责验证资源所有者的身份,并颁发访问令牌(Access Token)给客户端。

  4. 资源服务器(Resource Server):存储和保护受保护的资源,并验证客户端请求中的访问令牌。

OAuth 2.0 协议流程一般包括以下步骤:

  1. 客户端向授权服务器请求授权,用户在授权服务器上登录并授权客户端访问受保护资源。

  2. 授权服务器验证用户身份,并向客户端颁发访问令牌。

  3. 客户端使用访问令牌向资源服务器请求受保护资源。

  4. 资源服务器验证访问令牌的有效性,并根据授权范围决定是否向客户端提供资源。

OAuth 2.0 提供了多种授权类型,包括授权码模式(Authorization Code)、密码模式(Resource Owner Password Credentials)、客户端凭证模式(Client Credentials)和隐式授权模式(Implicit Grant),每种类型适用于不同的使用场景和安全需求。

使用 OAuth 2.0,开发者可以实现安全的用户身份验证和授权机制,确保客户端应用程序可以安全地访问受保护的资源,同时保护用户的隐私和安全。许多大型的互联网服务和应用程序都采用 OAuth 2.0 来提供安全的第三方访问控制。

Seata

Seata(简称分布式事务解决方案)是一种开源的分布式事务管理框架,旨在解决微服务架构下的分布式事务问题。它提供了一套完整的分布式事务解决方案,包括事务发起方(Transaction Coordinator)、事务参与方(Transaction Participant)和事务管理器(Transaction Manager)等组件。

Seata 的核心目标是实现分布式事务的 ACID 特性(原子性、一致性、隔离性、持久性),使得跨多个微服务的事务可以具备一致性和可靠性。它提供了全局事务管理、本地事务管理和分布式事务协调等功能,可以有效地协调和管理分布式环境下的事务操作。

Seata 的主要特性和功能包括:

  1. 分布式事务协调:Seata 提供了全局事务协调器(Global Transaction Coordinator)和本地事务参与者(Local Transaction Participant)来协调分布式事务的提交和回滚。

  2. 高性能:Seata 使用高性能的二阶段提交协议(2PC)来保证事务的一致性,同时优化了事务的性能。

  3. 可扩展性:Seata 的架构设计具有良好的可扩展性,支持横向扩展和高可用部署,可以适应不同规模的应用场景。

  4. 多种存储模式:Seata 提供了多种存储模式,包括数据库模式、内存模式和 Redis 模式,以适应不同的存储需求和性能要求。

  5. 兼容性:Seata 兼容常见的数据库和消息队列,可以与各种主流的数据库和消息中间件进行集成。

  6. Spring Cloud 集成:Seata 提供了与 Spring Cloud 的集成支持,可以方便地在 Spring Cloud 微服务架构中使用 Seata 进行分布式事务管理。

Seata 是一个强大的分布式事务管理框架,可以解决微服务架构下的分布式事务问题。它为开发者提供了简单而强大的工具,使得分布式事务的处理变得更加可靠和高效。

BPM

BPM(Business Process Management)指的是业务流程管理,它是一种以业务流程为中心的管理方法和技术。BPM 旨在通过对业务流程的建模、分析、优化和自动化来提高组织的效率、灵活性和可持续性。

BPM 通常涉及以下方面:

  1. 流程建模:BPM 使用图形化工具或标准化的符号来描述业务流程,以便更好地理解和沟通流程的各个环节、步骤和参与者。

  2. 流程分析:BPM 对业务流程进行分析,包括流程的效率、瓶颈、风险和改进机会等方面的评估,以帮助组织发现问题和优化流程。

  3. 流程优化:BPM 通过识别和消除流程中的冗余、重复、低效的步骤,以及改进流程的自动化程度和资源利用率,来提高流程的效率和质量。

  4. 流程自动化:BPM 使用技术工具和平台来实现业务流程的自动化执行,包括自动分配任务、自动触发流程的下一步骤、集成外部系统等,以减少人工操作和提高流程的一致性和可靠性。

BPM 的目标是实现组织内部和跨组织的业务流程的可管理性、可优化性和可持续性。通过 BPM,组织可以更好地理解、规划和执行业务流程,提高工作效率和质量,并能够及时适应市场变化和业务需求的变化。

在实际应用中,BPM 可以结合相关的技术和工具,如工作流引擎、规则引擎、数据分析和监控等,来支持业务流程的管理和自动化。这些技术和工具能够进一步提升流程的效率、可靠性和可控性,以实现组织的业务目标和战略。

Keycloak

Keycloak 是一个开源的身份认证和访问管理解决方案,它提供了一套强大的功能和工具,用于保护和管理应用程序、服务和 API 的安全性。

Keycloak 主要功能包括:

  1. 用户身份认证:Keycloak 提供了各种身份认证方式,包括用户名/密码、社交登录(如 Google、Facebook 等)、单点登录(SSO)等,以验证用户的身份并颁发访问令牌。

  2. 访问控制和授权:Keycloak 可以定义细粒度的访问策略和权限,控制用户对应用程序、服务和 API 的访问权限,并确保只有经过授权的用户才能访问受保护的资源。

  3. 客户端管理:Keycloak 提供了管理和配置客户端应用程序的功能,包括注册、配置访问令牌和刷新令牌的有效期、定义回调 URL 等。

  4. 用户管理和身份同步:Keycloak 具有完整的用户管理功能,包括用户创建、角色分配、密码重置等,还支持与外部用户存储系统进行身份同步。

  5. 单点登录(SSO):Keycloak 可以作为一个认证中心,实现多个应用程序之间的单点登录,用户只需登录一次,即可访问多个受信任的应用程序。

  6. 客户端适配器:Keycloak 提供了适配器,用于将应用程序与 Keycloak 集成,以便进行身份认证和访问管理。

Keycloak 提供了基于标准的开放协议,如 OAuth 2.0、OpenID Connect 和 SAML 等,使得它与现有的应用程序和系统集成更加容易。它还具有可扩展性和高可用性的特点,适用于各种规模和类型的应用程序和系统。

通过使用 Keycloak,开发者可以快速添加身份认证和访问管理的功能到他们的应用程序中,减少了安全实现的复杂性,并提供了一套完善的安全解决方案。

Portainer

Portainer 是一个开源的容器管理界面,它提供了一个直观且易于使用的图形化界面,用于管理和监控 Docker 容器、镜像、网络和卷等资源。

Portainer 的主要功能包括:

  1. 容器管理:通过 Portainer,您可以轻松地创建、启动、停止、删除和管理 Docker 容器。您可以查看容器的运行状态、日志、端口映射等详细信息,并执行各种操作,如重新启动、暂停、恢复等。

  2. 镜像管理:Portainer 允许您浏览、搜索、拉取、推送和删除 Docker 镜像。您可以查看镜像的详细信息、标签、大小等,并执行相关的操作,如构建镜像、删除无用的镜像等。

  3. 网络管理:Portainer 提供了网络管理功能,您可以创建、编辑、删除和管理 Docker 网络。您可以定义容器之间的网络连接和通信规则,管理容器的网络配置,并查看网络的状态和属性。

  4. 卷管理:通过 Portainer,您可以管理 Docker 卷,包括创建、删除、挂载和卸载卷。您可以查看卷的详细信息、容器卷的关联关系,并进行相关操作,如备份、恢复等。

  5. 用户和权限管理:Portainer 具有用户和权限管理功能,允许您创建和管理多个用户,并定义他们的角色和访问权限。您可以控制用户对不同资源的访问权限,以确保安全和可控的管理环境。

  6. 监控和日志:Portainer 提供了实时的容器监控和日志查看功能。您可以查看容器的 CPU、内存、网络和存储使用情况,并查看容器的日志输出,以帮助您诊断和排查问题。

Portainer 提供了易于安装和部署的方式,支持各种平台和部署场景。它是一个方便的工具,可以简化 Docker 容器管理的复杂性,使得容器的操作和管理更加可视化和直观。无论是新手还是有经验的开发者,都可以受益于 Portainer 的功能和界面,提高容器化应用程序的开发和管理效率。

MinIO

MinIO 是一个开源的对象存储服务器,它兼容 Amazon S3 的 API,可以用于构建私有云存储或在本地部署的对象存储解决方案。

MinIO 的主要特点包括:

  1. 高性能:MinIO 使用 Go 语言编写,具有高度优化的存储引擎,可以提供卓越的读写性能和低延迟,适用于大规模的数据存储和处理需求。

  2. 可扩展性:MinIO 可以水平扩展,通过在集群中添加更多的节点,可以增加存储容量和处理能力,以满足不断增长的数据存储需求。

  3. 高可用性:MinIO 支持数据的冗余复制和故障恢复,可以在节点故障或数据损坏时保持数据的可用性和一致性。

  4. 安全性:MinIO 支持数据的加密和访问控制,可以保护数据的机密性和完整性,确保只有经授权的用户可以访问存储的对象。

  5. 兼容性:MinIO 兼容 Amazon S3 的 API,可以与现有的 S3 客户端和工具进行集成,无缝迁移和操作对象存储的数据。

  6. 管理界面:MinIO 提供了一个易于使用的 Web 管理界面,用于管理存储桶、对象、访问权限等,使得管理和监控存储资源变得简单和直观。

MinIO 可以用于各种应用场景,包括大规模数据存储、备份和恢复、图片和视频存储、日志存储和分析等。它提供了一个灵活、可靠和高性能的对象存储解决方案,为开发者和组织提供了强大的工具来构建和管理数据存储基础设施。

RabbitMQ

RabbitMQ 是一个开源的消息队列中间件,它实现了高性能、可靠性和可扩展性的消息传递机制,用于在应用程序之间进行异步通信。

RabbitMQ 的主要特点包括:

  1. 消息队列模型:RabbitMQ 使用消息队列模型,消息发送方将消息发送到队列,而消息接收方从队列中接收消息。这种解耦的方式可以实现异步通信,提高应用程序的可扩展性和灵活性。

  2. 消息持久化:RabbitMQ 可以将消息持久化到磁盘,以确保消息在发生故障或重启时不会丢失。这对于关键性的消息传递和数据一致性至关重要。

  3. 发布/订阅模式:RabbitMQ 支持发布/订阅模式,允许多个消费者订阅同一个队列,并同时接收消息。这样可以实现广播式的消息传递,满足多个消费者同时处理消息的需求。

  4. 路由和交换机:RabbitMQ 提供了多种交换机类型和路由策略,可以根据消息的特性和目标队列的配置,将消息路由到指定的队列或消费者。

  5. 可靠性和容错性:RabbitMQ 提供了消息确认机制和持久化存储,以确保消息传递的可靠性。它还具备集群和镜像队列的特性,提供高可用性和容错性的支持。

  6. 可扩展性:RabbitMQ 可以通过横向扩展来增加消息处理的能力,通过添加更多的节点或启动更多的消费者实例,以应对高负载和大规模消息传递的需求。

RabbitMQ 提供了丰富的客户端库和插件,可以与各种编程语言和技术栈进行集成。它广泛应用于分布式系统、微服务架构、任务队列、日志处理、实时通信等场景,为应用程序提供可靠、异步和高性能的消息传递机制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值