orchestrator数据库高可用组件搭建

MySQL高可用——Orchestrator架构、配置文件详细介绍和单机搭建部署 orchestrator可以选择执行自动恢复(或允许用户选择手动恢复的类型)。orchestrator了解复制规则。即使遇到故障,也可以为MySQL环境的拓扑提供流畅的可视化效果,包括复制问题。同时需要注意的是,Orchestrator的server端需要和对外提供服务的MySQL放在一起的,Orchestrator的专属后端可以放到远程服务器上,这点在配置文件中也有体现。在对外提供服务的MySQL服务器上创建用户,使orchestrator可以检测到该MySQL,从而绘制拓补图。 阅读详情

一、前言

      说一下为什么使用orchestrator作为数据库的高可用组件而不是MHA,因为mha组件存在组件单点问题,而orchestrator组件可以组建集群,不会出现单点问题

二、搭建

搭建mysql gtid主从

参考:mysql主从搭建(gtid)-优快云博客

上面的主从配置是为了 orchestrator数据库高可用组件的使用,其中有几个配置不能出错

主从配置中的CHANGE MASTER TO MASTER_HOST='rabbitmq02',必须使用主机名,不能使用ip地址,不然在使用orchestrator组件做mysql故障切换时会出问题

还有就是对于主从同步用户的权限配置也是加多了几项,而不是单纯的配置REPLICATION SLAVE权限

搭建orchestrator集群

在github上下载orchestrator的安装包

地址:Releases · openark/orchestrator · GitHub

 这里使用三台主机构建orchestrator集群,使用raft协议使用高可用,允许一台主机宕机

ipport
10.1.60.1183306、3001
10.1.60.1203306、3001
10.1.60.1253306、3001

需要先为每台主机安装mysql服务

参考:yum安装mysql 5.7_yum安装mysql5.7_Apex Predator的博客-优快云博客

创建 orchestrator数据库与用户

mysql -u root -p

create database orchestrator;

create user 'orchestrator'@'%' identified by '11111111';

grant all on orchestrator.* to 'orchestrator'@'%';

flush privileges;

将安装包分别放到三台主机上并解压

mkdir /opt/orchestrator && cd /opt/orchestrator

tar -zxvf orchestrator-3.2.5-linux-amd64.tar.gz && ls

拷贝配置文件(三台主机都需要操作)

cd usr/local/orchestrator/

cp orchestrator-sample.conf.json orchestrator.conf.json

编辑配置文件(三台主机都需要操作)

vi orchestrator.conf.json

{
  "Debug": true,
  "EnableSyslog": true,
  "ListenAddress": ":3001",            #默认是使用3000端口,但是我这边有服务被使用了所以改成3001端口
  "MySQLTopologyUser": "orchestrator",    #配置被监控的主从数据库的用户
  "MySQLTopologyPassword": "11111111",     #配置被监控的主从数据库的用户密码
  "MySQLTopologyCredentialsConfigFile": "",
  "MySQLTopologySSLPrivateKeyFile": "",
  "MySQLTopologySSLCertFile": "",
  "MySQLTopologySSLCAFile": "",
  "MySQLTopologySSLSkipVerify": true,
  "MySQLTopologyUseMutualTLS": false,
  "MySQLOrchestratorHost": "10.1.60.125",     #配置orchestrator组件服务本机地址
  "MySQLOrchestratorPort": 3306,              #配置orchestrator组件服务数据库端口
  "MySQLOrchestratorDatabase": "orchestrator",   #配置orchestrator组件数据库
  "MySQLOrchestratorUser": "orchestrator",       #配置orchestrator数据库用户
  "MySQLOrchestratorPassword": "11111111",        ##配置orchestrator数据库用户密码
  "MySQLOrchestratorCredentialsConfigFile": "",
  "MySQLOrchestratorSSLPrivateKeyFile": "",
  "MySQLOrchestratorSSLCertFile": "",
  "MySQLOrchestratorSSLCAFile": "",
  "MySQLOrchestratorSSLSkipVerify": true,
  "MySQLOrchestratorUseMutualTLS": false,
  "MySQLConnectTimeoutSeconds": 1,
  "RaftEnabled": true,                         #启用raft配置,以下配置默认是没有的,需要手动加上
  "RaftDataDir": "/opt/orchestrator",           #配置orchestrator安装包地址
  "RaftBind": "10.1.60.125",                      #配置orchestrator组件服务本机地址
  "DefaultRaftPort": 10008,                 #配置raft服务端口
  "RaftNodes": [                       #配置orchestrator组件集群地址
    "10.1.60.118",
    "10.1.60.120",
    "10.1.60.125"
  ], 
  "DefaultInstancePort": 3306,
  "DiscoverByShowSlaveHosts": true,
  "InstancePollSeconds": 5,
  "DiscoveryIgnoreReplicaHostnameFilters": [
    "a_host_i_want_to_ignore[.]example[.]com",
    ".*[.]ignore_all_hosts_from_this_domain[.]example[.]com",
    "a_host_with_extra_port_i_want_to_ignore[.]example[.]com:3307"
  ],
  "UnseenInstanceForgetHours": 240,
  "SnapshotTopologiesIntervalHours": 0,
  "InstanceBulkOperationsWaitTimeoutSeconds": 10,
  "HostnameResolveMethod": "None",     #此处需要更改为None,默认是default,使用默认的后面通过主机名添加mysql主从的时候会查找不到
  "MySQLHostnameResolveMethod": "SELECT concat(@@report_host,':',@@port)",  #此处也需要更改为report_host模式
  "SkipBinlogServerUnresolveCheck": true,
  "ExpiryHostnameResolvesMinutes": 60,
  "RejectHostnameResolvePattern": "",
  "ReasonableReplicationLagSeconds": 10,
  "ProblemIgnoreHostnameFilters": [],
  "VerifyReplicationFilters": false,
  "ReasonableMaintenanceReplicationLagSeconds": 20,
  "CandidateInstanceExpireMinutes": 60,
  "AuditLogFile": "",
  "AuditToSyslog": false,
  "RemoveTextFromHostnameDisplay": ":3306",
  "ReadOnly": false,
  "AuthenticationMethod": "",
  "HTTPAuthUser": "",
  "HTTPAuthPassword": "",
  "AuthUserHeader": "",
  "PowerAuthUsers": [
    "*"
  ],
  "ClusterNameToAlias": {
    "127.0.0.1": "test suite"
  },
  "ReplicationLagQuery": "",
  "DetectClusterAliasQuery": "SELECT SUBSTRING_INDEX(@@hostname, '.', 1)",
  "DetectClusterDomainQuery": "",
  "DetectInstanceAliasQuery": "",
  "DetectPromotionRuleQuery": "",
  "DataCenterPattern": "[.]([^.]+)[.][^.]+[.]mydomain[.]com",
  "PhysicalEnvironmentPattern": "[.]([^.]+[.][^.]+)[.]mydomain[.]com",
  "PromotionIgnoreHostnameFilters": [],
  "DetectSemiSyncEnforcedQuery": "",
  "ServeAgentsHttp": false,
  "AgentsServerPort": ":3001",      #此处也需要更改orchestrator组件默认的端口号
  "AgentsUseSSL": false,
  "AgentsUseMutualTLS": false,
  "AgentSSLSkipVerify": false,
  "AgentSSLPrivateKeyFile": "",
  "AgentSSLCertFile": "",
  "AgentSSLCAFile": "",
  "AgentSSLValidOUs": [],
  "UseSSL": false,
  "UseMutualTLS": false,
  "SSLSkipVerify": false,
  "SSLPrivateKeyFile": "",
  "SSLCertFile": "",
  "SSLCAFile": "",
  "SSLValidOUs": [],
  "URLPrefix": "",
  "StatusEndpoint": "/api/status",
  "StatusSimpleHealth": true,
  "StatusOUVerify": false,
  "AgentPollMinutes": 60,
  "UnseenAgentForgetHours": 6,
  "StaleSeedFailMinutes": 60,
  "SeedAcceptableBytesDiff": 8192,
  "PseudoGTIDPattern": "",
  "PseudoGTIDPatternIsFixedSubstring": false,
  "PseudoGTIDMonotonicHint": "asc:",
  "DetectPseudoGTIDQuery": "",
  "BinlogEventsChunkSize": 10000,
  "SkipBinlogEventsContaining": [],
  "ReduceReplicationAnalysisCount": true,
  "FailureDetectionPeriodBlockMinutes": 60,
  "FailMasterPromotionOnLagMinutes": 0,
  "RecoveryPeriodBlockSeconds": 3600,
  "RecoveryIgnoreHostnameFilters": [],
  "RecoverMasterClusterFilters": ["*"],           #需要更改默认配置,改为*,不然主从故障自动切换不会生效
  "RecoverIntermediateMasterClusterFilters": ["*"],    #需要更改默认配置,改为*,不然主从故障自动切换不会生效
  "OnFailureDetectionProcesses": [
    "echo 'Detected {failureType} on {failureCluster}. Affected replicas: {countSlaves}' >> /tmp/recovery.log"
  ],
  "PreGracefulTakeoverProcesses": [
    "echo 'Planned takeover about to take place on {failureCluster}. Master will switch to read_only' >> /tmp/recovery.log"
  ],
  "PreFailoverProcesses": [
    "echo 'Will recover from {failureType} on {failureCluster}' >> /tmp/recovery.log"
  ],
  "PostFailoverProcesses": [
    "echo '(for all types) Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "PostUnsuccessfulFailoverProcesses": [],
  "PostMasterFailoverProcesses": [
    "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Promoted: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "PostIntermediateMasterFailoverProcesses": [
    "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "PostGracefulTakeoverProcesses": [
    "echo 'Planned takeover complete' >> /tmp/recovery.log"
  ],
  "CoMasterRecoveryMustPromoteOtherCoMaster": true,
  "DetachLostSlavesAfterMasterFailover": true,
  "ApplyMySQLPromotionAfterMasterFailover": true,
  "PreventCrossDataCenterMasterFailover": false,
  "PreventCrossRegionMasterFailover": false,
  "MasterFailoverDetachReplicaMasterHost": false,
  "MasterFailoverLostInstancesDowntimeMinutes": 0,
  "PostponeReplicaRecoveryOnLagMinutes": 0,
  "OSCIgnoreHostnameFilters": [],
  "GraphiteAddr": "",
  "GraphitePath": "",
  "GraphiteConvertHostnameDotsToUnderscores": true,
  "ConsulAddress": "",
  "ConsulAclToken": "",
  "ConsulKVStoreProvider": "consul"
}

启动orchestrator组件服务

nohup ./orchestrator http &>./orchestrator.log&

查看orchestrator组件服务是否正常

netstat -tlpn |grep 3001

访问 orchestrator组件web

接下来添加mysql主从,只需添加主从中的任意一台就会自动识别整个主从架构

 

 关于主从故障的测试就不再演示了,可以自行操作,但是原来挂掉的主数据库重新启动后需要手动配置slave服务才能重新在加入主从架构中

K8S中部署MySQL高可用工具Orchestrator Orchestrator 可以部署在物理机、虚拟机或 Kubernetes 集群中,笔者发现目前针对k8s集群部署的方式介绍较少,现通过示例详细阐述Orchestrator 这一功能强大且灵活的工具部署方式,希望学习mysql和k8s的同学提供帮助 阅读详情

相关推荐

orchestrator部署

摘要:本文介绍了MySQL高可用管理工具Orchestrator的安装配置流程,主要包括:1)安装jq工具包;2)可选域名解析设置;3)创建后端数据库;4)被管理MySQL集群的用户授权和report_host参数配置;5)详细说明orchestrator.conf.json配置文件的关键参数设置,包括监听端口、数据库连接信息、Raft集群配置等,并提供了完整的配置示例。通过该方案可实现MySQL集群的高可用管理。

qq_34478339的博客 1687

Mysql orchestrator高可用

Orchestrator是一款开源,对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。............

u010648194的博客 3328

orchestrator高可用复制管理工具的安装部署

Orchestrator是一款开源,对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。

m0_54255157的博客 1806

【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~

orchestrator 是基于 MySQL 主从的开源的 MySQL 高可用方案,可以管理上千个 MySQL 集群。实现 MySQL 高可用的同时,可配置实现自身的高可用。项目地址: https://github.com/openark/orchestrator。

hh的博客 4783

Uipath Orchestrator搭建步骤与注意问题

前言 之前曾经参与过几个uipath的项目,都有用到Orchestrator (下面简称OC),直到去年出了最新的正式版OC,由于项目的特殊性,也遇到了一些之前未遇到过的问题,借此机会想把一些安装过程以及期间遇到的问题都罗列出来,希望各位可以少走一点弯路。 所谓的特殊性 完全是一部空的机器,就只有一个干净的windows server 2016虚拟机。 虚拟机对应的网络是完全不能接interne...

神星矢的博客 6193

使用HashiCorp Vault实现Orchestrator数据库配置的动态秘密管理

在现代云原生架构中,敏感信息管理是保障基础设施安全的核心环节。传统的静态配置文件存储密码、API令牌等秘密信息存在泄露风险,而动态秘密注入技术通过集中化、自动化的方式从根本上改变了秘密的生命周期管理。其原理在于应用启动时通过安全身份认证(如AppRole、Kubernetes Service Account)向秘密管理平台临时获取短生命周期的凭证,实现零信任安全模型。这一技术价值在于实现了秘密的自动轮换、最小权限访问和完整审计追踪,大幅降低了凭证泄露风险。在数据库管理、微服务通信、CI/CD流水线等场景中,

weixin_34268169的博客 439

docker-compose部署MySQL高可用工具orchestrator

Orchestrator 是一个用于管理和监控 MySQL 和 MariaDB 主从复制环境的开源工具。它提供了功能强大的主从复制拓扑可视化、故障转移(failover)和高可用性(HA)管理功能通过容器化简洁明了的展示部署方式,能有效提高部署效率提高监控灵活性帮助读者更好的学习理解。

sozee910的博客 3101

MySQL高可用方案orchestrator简介

官方地址https://github.com/github/orchestrator 介绍 Orchestrator是MySQL高可用性和复制管理工具,可作为服务运行,并提供命令行访问,HTTP API和Web界面 1 发现 Discovery orch可以自动发现MySQL复制拓扑,提供可视化,可以在web页面展示,orch本身具有高可用。 2 重构Refactoring orch可以重构MySQL复制关系,可以在web进行拖图来进行复制关系变更 3恢复Recovery ...

DBA之路的博客 2514

【DB宝40】MySQL高可用管理工具Orchestrator简介及测试

文章目录一、Orchestrator简介二、快速搭建Orchestrator环境三、添加主从环境四、修改集群别名五、拖动界面修改主从关系六、自动failover 一、Orchestrator简介 Orchestrator是一款开源,对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。 Orchestrator后台依赖于

小麦苗DBA宝典 4366

高可用 | Orchestrator架构介绍(一)

由 go 编写的 MySQL 高可用性和复制拓扑管理工具,支持复制拓扑结构的调整、自动故障转移和手动主从切换等。后端数据库使用 MySQL 或 SQLite 存储元数据,并提供 Web 界面展示 MySQL 复制的拓扑关系及状态。通过 Web 可更改 MySQL 实例的复制关系和部分配置信息,同时也提供命令行和 api 接口,便于运维管理。

weixin_47056515的博客 2476

第八阶段【MySQL的高可用】03:Orchestrator集群搭建部署

Orchestrator集群搭建部署

weixin_40612128的博客 330

Orchestrator与腾讯云MySQL集成:快速搭建高可用数据库集群的完整指南

在当今云计算时代,MySQL数据库的高可用性和自动化管理已成为企业级应用的关键需求。orchestrator作为一款开源的MySQL复制拓扑管理工具,能够显著简化数据库集群的运维工作。本文将为您详细介绍如何在腾讯云环境中部署和配置orchestrator,实现MySQL数据库的高可用性管理。 ## 🚀 为什么选择Orchestrator? orchestrator是专为MySQL复制拓扑设计

gitblog_00939的博客 854

5分钟搞定阿里云千问大模型API申请:手把手教你获取API Key

本文提供了一份高效的阿里云通义千问大模型API Key获取实战指南。通过清晰的步骤,帮助开发者在五分钟内完成从账号准备、精准导航控制台到创建并验证API Key的全过程,并强调了密钥安全管理和基础调用测试的重要性,助力快速集成AI能力。

ol789012345的博客 1351

5分钟快速搭建MySQL高可用集群:Orchestrator + Vagrant终极部署指南

MySQL高可用集群搭建不再是难题!Orchestrator作为强大的MySQL复制拓扑管理工具,结合Vagrant的快速部署能力,让你在短短几分钟内就能搭建完整的MySQL高可用环境。本教程将手把手教你使用Vagrant快速部署Orchestrator,实现MySQL集群的自动故障检测和恢复。🚀 ## 为什么选择Orchestrator + Vagrant组合? Orchestrator是

gitblog_00812的博客 1042

西门子S7-200 SMART PLC高速计数器与增量式编码器实战配置指南

在工业自动化控制系统中,传感器是将物理量转换为电信号的关键组件,其中编码器作为核心的位置与速度检测元件,其工作原理基于光电或磁电效应,将机械位移转换为脉冲序列。增量式编码器通过输出相位差90度的A/B两相脉冲,不仅能实现精确的位移测量,还能通过相位关系自动判别运动方向,并通过倍频技术提升分辨率。其技术价值在于为PLC等控制器提供了实时、高精度的位置反馈,是实现闭环控制、提升系统精度与可靠性的基础。在包装机械、物料输送、绕线设备等应用场景中,编码器与PLC高速计数器的协同工作是实现精确定位、定长切割与速度控制

weixin_29178069的博客 396

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

Orchestrator (1) 高可用管理详解

背景 在MySQL高可用架构中,目前使用比较多的是Percona的PXC,Galera以及MySQL 5.7之后的MGR等,其他的还有的MHA,今天介绍另一个比较好用的MySQL高可用复制管理工具:Orchestrator(orch)。 Orchestrator 这是一款go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MySQL复制的拓扑关系及状态,通过Web可更改MySQL实例的复制关

爱死亡机器人 2446

使用机器学习算法预测黄金价格

在本文中,我们将使用线性回归、XGBoost和LSTM这三种不同的机器学习算法来预测黄金价格。接下来,我们使用线性回归、XGBoost和LSTM分别建立了模型,并进行了训练和预测。这些机器学习算法可以帮助我们对黄金价格进行预测,但请注意,市场价格受多种因素影响,因此预测结果可能并不完全准确。接下来,我们需要对数据进行一些预处理,以便用于机器学习模型的训练和测试。我们将使用80%的数据作为训练集,20%的数据作为测试集。最后,我们将绘制每个模型的预测结果,并将其与实际价格进行比较,以评估模型的性能。

QromMatlab的博客 1316

Helium-Chromium 用户数据备份:手把手搞定新设备迁移与误删恢复

Helium-Chromium 是一款主打隐私的 Chromium 内核浏览器,你的书签、密码、扩展和个性化设置全部存放在本地配置文件里——磁盘故障或系统重装,这些都会随之消失。这篇 Helium-Chromium 用户数据备份指南讲清楚一件事:怎么在三种常见场景下(换新设备、误删配置、系统重装)把数据完整带走或救回来。内容按数据对象拆分,各节可独立执行。 ## 先找到数据藏在哪 浏览器的一切

gitblog_00730的博客 373

宇树G1二次开发资料汇总

宇树科技G1是一款29自由度的商业级人形机器人,配备NVIDIA Jetson Orin NX计算平台和完整SDK生态。本文系统介绍了G1的硬件架构、29个关节配置、传感器外设、双计算单元设计等关键信息,并详细解析了软件生态体系,包括C++/Python SDK、ROS2接口、仿真工具和AI框架。开发者可通过DDS通信实现高层运动控制或底层关节级精确控制,支持快速二次开发。文档提供了网络配置、接口调用示例等实用指南,帮助开发者高效利用该平台进行人形机器人应用开发。

m0_47999117的博客 1316

KoboldCpp vs Ollama vs llama.cpp 全面对比(2026工程视角)

本文对比分析了KoboldCpp、Ollama和llama.cpp三大本地AI推理工具的核心差异。llama.cpp作为基础引擎性能最强但上手困难;KoboldCpp在其基础上增加了UI界面,适合娱乐创作;Ollama则提供最简化的模型管理和API服务。性能实测显示:llama.cpp>KoboldCpp>Ollama。选型建议:新手用Ollama快速入门,玩家选KoboldCpp获得交互体验,工程师用llama.cpp追求极致性能。三者定位清晰:性能极限、使用体验和开发效率各有所长。

刘一说的IT专栏 907

MySQL【高可用篇】02:MySQL8.0.25基于一主两从的Orchestrator集群搭建部署

MySQL8.0.25基于一主两从的Orchestrator集群搭建部署

weixin_40612128的博客 1850

TSN新技术,让您的设备网络“更实时、更确定、更安全”

近日,工业和信息化部发布了2022年第23号公告,批准发布行业标准YD/T 4134-2022《工业互联网时间敏感网络需求及场景》。该标准是国内首个时间敏感网络(TSN)技术标准,标志着我国TSN技术标准体系建设迈出了坚实的一步,对构建工业互联网网络标准体系具有重要意义。TSN源于Time-Sensitive Networking的缩写,中文译名为时间敏感网络,因其具备的确定性和微秒级交互特性,受到了对实时性要求较高的工业控制领域的关注。TSN与工业数智化。

创龙,嵌入式一体化解决方案商 771

ProxySQL + Orchestrator 实现 MySQL 高可用

ProxySQL + Orchestrator 实现 MySQL 高可用

wzy0623的专栏 494

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

orchestrator搭建mysql高可用

orchestrator搭建mysql高可用

huanhuanzhou blog 1338

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: mysql主从搭建(gtid)
下一篇: prometheus监控告警部署(k8s内部)
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值