分布式之Paxos算法

分布式系统理论之Quorum机制 分布式系统理论之Quorum机制 一,Quorum机制介绍 在分布式系统中有个CAP理论,对于P(分区容忍性)而言,是实际存在 从而无法避免的。因为,分布系统中的处理不是在本机,而是网络中的许多机器相互通信,故网络分区、网络通信故障问题无法避免。因此,只能尽量地在C 和 A 之间寻求平衡。对于数据存储而言,为了提高可用性(Availability),采用了副本备份,比如对于HDFS,默认每块数... 阅读详情

在了解Quorum机制之前,先回顾一下数据一致性

 

强一致性:在任意时刻,从任意不同副本取出的值都是一样的。

弱一致性:有时泛指最终一致性,是指在任意时刻,可能由于网络延迟或者设备异常等原因,不同副本中的值可能会不一样,但经过一段时间后,最终会变成一样。

 

WARO协议

WARO (Write All Read One)是一种简单的副本控制协议,当 Client 请求向某副本写数据时(更新数据),只有当所有的副本都更新成功之后,这次写操作才算成功,否则视为失败。这样的话,只需要读任何一个副本上的数据即可。但是WARO带来的影响是写服务的可用性较低,因为只要有一个副本更新失败,此次写操作就视为失败了。

 

Quorum 机制

Quorum 的定义如下:假设有 N 个副本,更新操作 wi 在 W 个副本中更新成功之后,才认为此次更新操作 wi 成功,把这次成功提交的更新操作对应的数据叫做:“成功提交的数据”。对于读操作而言,至少需要读 R 个副本才能读到此次更新的数据,其中,W+R>N ,即 W 和 R 有重叠,一般,W+R=N+1。

N = 存储数据副本的数量

W = 更新成功所需的副本

R = 一次数据对象读取要访问的副本的数量

 

Quorum就是限定了一次需要读取至少N+1-w的副本数据,听起来有些抽象,举个例子,我们维护了10个副本,一次成功更新了6个,那么至少需要读取5个副本的数据,可以保证我们读到了最新的数据。

 

Quorum 的应用

Quorum 机制无法保证强一致性,也就是无法实现任何时刻任何用户或节点都可以读到最近一次成功提交的副本数据。

Quorum 机制的使用需要配合一个获取最新成功提交的版本号的 metadata 服务,这样可以确定最新已经成功提交的版本号,然后从已经读到的数据中就可以确认最新写入的数据。

Quorum 是分布式系统中常用的一种机制,用来保证数据冗余和最终一致性的投票算法,在 Paxos、Raft 和 ZooKeeper 的 Zab 等算法中,都可以看到 Quorum 机制的应用。

 

Paxos 节点的角色和交互

了解了 Quorum 机制,我们接下来学习 Paxos 算法,首先看一下 Paxos 算法中的节点角色和交互。

 

Paxos 的节点角色

在 Paxos 协议中,有三类节点角色,分别是 Proposer、Acceptor 和 Learner,另外还有一个 Client,作为产生议题者。

 

上述三类角色只是逻辑上的划分,在工作实践中,一个节点可以同时充当这三类角色。

 

Proposer 提案者

Proposer 可以有多个,在流程开始时,Proposer 提出议案,也就是value,所谓 value,在工程中可以是任何操作,比如“修改某个变量的值为某个新值”,Paxos 协议中统一将这些操作抽象为 value。

 

不同的 Proposer 可以提出不同的甚至矛盾的 value,比如某个 Proposer 提议“将变量 X 设置为 1”,另一个 Proposer 提议“将变量 X 设置为 2”,但对同一轮 Paxos 过程,最多只有一个 value 被批准。

 

Acceptor 批准者

在集群中,Acceptor 有 N 个,Acceptor 之间完全对等独立,Proposer 提出的 value 必须获得超过半数(N/2+1)的 Acceptor 批准后才能通过。

 

Learner 学习者

Learner 不参与选举,而是学习被批准的 value,在Paxos中,Learner主要参与相关的状态机同步流程。

这里Leaner的流程就参考了Quorum 议会机制,某个 value 需要获得 W=N/2 + 1 的 Acceptor 批准,Learner 需要至少读取 N/2+1 个 Accpetor,最多读取 N 个 Acceptor 的结果后,才能学习到一个通过的 value。

 

Client 产生议题者

Client 角色,作为产生议题者,实际不参与选举过程,比如发起修改请求的来源等。

 

Proposer 与 Acceptor 之间的交互

Paxos 中, Proposer 和 Acceptor 是算法核心角色,Paxos 描述的就是在一个由多个 Proposer 和多个 Acceptor 构成的系统中,如何让多个 Acceptor 针对 Proposer 提出的多种提案达成一致的过程,而 Learner 只是“学习”最终被批准的提案。

 

 

Proposer 与 Acceptor 之间的交互主要有 4 类消息通信,如下图:

 

这 4 类消息对应于 Paxos 算法的两个阶段 4 个过程,下面在分析选举过程时会讲到。

 

Paxos 选举过程

 

选举过程可以分为两个部分,准备阶段和选举阶段,可以查看下面的时序图:

 

Phase 1 准备阶段

 

Proposer 生成全局唯一且递增的 ProposalID,向 Paxos 集群的所有机器发送 Prepare 请求,这里不携带 value,只携带 N 即 ProposalID。

 

 

Acceptor 收到 Prepare 请求后,判断收到的 ProposalID 是否比之前已响应的所有提案的 N 大,如果是,则:

 

在本地持久化 N,可记为 Max_N;

 

回复请求,并带上已经 Accept 的提案中 N 最大的 value,如果此时还没有已经 Accept 的提案,则返回 value 为空;

 

做出承诺,不会 Accept 任何小于 Max_N 的提案。

 

 

如果否,则不回复或者回复 Error。

 

Phase 2 选举阶段

为了方便描述,我们把 Phase 2 选举阶段继续拆分为 P2a、P2b 和 P2c。

 

P2a:Proposer 发送 Accept

经过一段时间后,Proposer 收集到一些 Prepare 回复,有下列几种情况:

若回复数量 > 一半的 Acceptor 数量,且所有回复的 value 都为空时,则 Porposer 发出 accept 请求,并带上自己指定的 value。

若回复数量 > 一半的 Acceptor 数量,且有的回复 value 不为空时,则 Porposer 发出 accept 请求,并带上回复中 ProposalID 最大的 value,作为自己的提案内容。

若回复数量 <= 一半的 Acceptor 数量时,则尝试更新生成更大的 ProposalID,再转到准备阶段执行。

 

P2b:Acceptor 应答 Accept

Accpetor 收到 Accpet 请求 后,判断:

若收到的 N >= Max_N(一般情况下是等于),则回复提交成功,并持久化 N 和 value;

若收到的 N < Max_N,则不回复或者回复提交失败。

 

P2c: Proposer 统计投票

经过一段时间后,Proposer 会收集到一些 Accept 回复提交成功的情况,比如:

当回复数量 > 一半的 Acceptor 数量时,则表示提交 value 成功,此时可以发一个广播给所有的 Proposer、Learner,通知它们已 commit 的 value;

当回复数量 <= 一半的 Acceptor 数量时,则尝试更新生成更大的 ProposalID,转到准备阶段执行。

当收到一条提交失败的回复时,则尝试更新生成更大的 ProposalID,也会转到准备阶段执行。

 

文章主要整理自以下课程,如果想系统学习分布式技术原理与实战,可点击:

https://skaygo.blog.youkuaiyun.com/article/details/113850871

three.js开发3D地图记录(二) 添加地图点击事件,点击区域,地图区域改变颜色并浮起来。 阅读详情

相关推荐

Unity3D安装:离线安装 Unity

Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中,可下载用于安装 Unity 的所有文件,然后生成脚本以便在未接入互联网的其他计算机上重复相同的安装。运行下载助手,并在一台计算机上正常安装 Unity。此计算机必须有足够的可用磁盘空间来下载所有文件。单击下拉选单并选择 __Custom__,然后选择要将文件下载到的位置。打开 PC 的文件管理器,导航到之前指定的自定义位置文件夹,然后在该文件夹内查找。整理翻译,转载请注明出处!

ygtu2018的博客 3259

Quorum 机制(分布式系统)

Quorum机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。 基于Quorum投票的冗余控制算法 在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。 该算法可以保证同一份数据对象的多份拷贝不会被超过两个访问对象读写。 算法来源于[Gifford, 1979][3][1]。 分布式系统中的每一份数据拷贝对象都被赋予一票。每一个读操作获得的票数必须大于最小读票数(r.

阿哥的专栏 3897

西门子PLC新手必看:200SMART与1200/1500的MODBUS RTU通讯实战(附完整配置流程)

本文详细解析了西门子PLC中S7-200 SMART与S7-1200/1500之间实现MODBUS RTU通讯的完整实战流程。内容涵盖硬件接线、软件配置及程序编写,重点讲解了200SMART作为从站、1200/1500作为主站的典型架构,并提供了关键功能块的使用方法和常见问题排查技巧,帮助新手快速打通不同系列PLC间的数据交换。

weixin_29214559的博客 400

【大数据】Quorum算法

Quorum算法是一种分布式系统中用于达成共识的算法,它确保在存在节点故障的情况下,系统依然能够正常运行。Quorum算法的核心思想是通过多数派投票来达成一致,即当大多数节点同意某个值时,这个值就被认为是系统共识的结果。

大雨淅淅的博客 1458

从零开始:用Python搭建你的第一个加密货币量化交易机器人(附完整代码)

本文详细介绍了如何使用Python从零开始搭建一个加密货币量化交易机器人,涵盖环境准备、交易所API连接、基础交易策略实现、回测系统构建以及实盘部署等关键步骤。通过完整的代码示例,帮助读者快速掌握数字货币量化交易的核心技术,适合有一定编程基础的投资者入门。

weixin_30415113的博客 466

RK3576的ISP和VPSS图像处理能力实测:对比海思方案能做什么?

本文深度评测了RK3576芯片的ISP和VPSS图像处理能力,并与海思方案进行对比。测试显示,RK3576在MIPI接口灵活性、多路视频支持、HDR动态范围和降噪效果等方面表现优异,特别适合智能视觉和安防监控应用。通过实测数据展示了其在低照度、高动态范围等复杂场景下的卓越性能。

weixin_42713608的博客 265

Quorum & Raft & Paxos

通常,Quorum的要求是根据副本组中节点数目的一部分来定义的,例如,要求达到节点数目的一半加一。如果您对RAFT算法的更深入细节和技术细节感兴趣,可以参考原始的RAFT论文 “In Search of an Understandable Consensus Algorithm”,以及RAFT算法相关的扩展和优化的研究论文。它提供了一种可靠的共识机制,确保在分布式环境中的一致性操作和可靠的数据复制。RAFT协议和Quorum协议是两种用于分布式系统中实现一致性的不同协议,它们有着不同的设计和工作原理。

喝醉酒的小白 2992

Zephyr 开发必备技能:一文搞懂 west manifest

本文深入解析Zephyr项目的westmanifest工具与Manifest文件管理,从基础概念到高级应用。文章首先介绍westmanifest作为Zephyr模块化架构的核心工具,负责管理west.yml文件中的模块信息、Git地址及版本控制。随后详细讲解Manifest文件的基本结构、字段含义,以及westmanifest子命令的使用方法,包括查看内容、冻结版本、验证文件等操作。文章还探讨了Manifest的导入继承机制和在团队协作中的版本管理策略,并给出常见问题排查技巧。最后强调Manifest文件作

hemoparrot的专栏 1259

分布式系统之Quorum机制

在《分布式系统之中心副本控制协议(Primary-secondary协议)》 中略微提及到了Quorum,但没有进行详细的阐述,这篇文章将带你走进Quorum. 1. Quorum介绍 首先,先认识发音和基本含义,英[ˈkwɔ:rəm], 美[ˈkwɔrəm, ˈkwor-],n. 法定人数. 在介绍Quorum之前,先对一些概念进行定义:系统中的更新操作定义为wiwiw_i,iii ...

华仔的逆袭的专栏 1万+

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1545

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2572

分布式算法 - Paxos算法

Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。自Paxos问世以来就持续垄断了分布式一致性算法,Paxos这个名词几乎等同于分布式一致性, 很多分布式一致性算法都由Paxos演变而来。Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,使其获得2013年图灵奖。

埃泽漫笔 1446

DirectX function “GetDeviceRemovedReason“ failed with DXGI_ERROR_DEVICE_HUNG (“The GPU will not resp

游戏报错"DXGI_ERROR_DEVICE_HUNG"的解决方案 在使用RTX 40系显卡运行FIFA 23等游戏时,可能出现DirectX报错导致游戏崩溃。这主要由于最新显卡驱动与DirectX 12的兼容性问题。解决方法包括: 降级显卡驱动版本 修改游戏配置文件,将DIRECTX_SELECT设为1 在显卡控制面板中关闭垂直同步、抗锯齿、DLSS 3等功能 调整电源模式为性能优先 这些操作可以有效解决因驱动兼容性导致的游戏崩溃问题。

猿小白的博客 3896

分布式一致性算法Paxos

分布式一致性是指在分布式系统中,多个节点对同一份数据进行修改或读取时,保证这些操作所产生的结果都是相同的。在实际应用中,由于网络延迟、节点崩溃等因素的存在,可能会导致不同节点的数据副本出现不一致的情况。因此,分布式一致性成为了分布式系统设计中一个非常重要的问题。例如,考虑一个在线购物网站的场景,该网站使用分布式系统处理订单和库存信息。当一个用户下单时,该订单会被写入多个节点的数据库中并同时减少相应商品的库存数量。

愿万事胜意 1万+

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

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

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

【分布式技术】分布式共识算法Paxos

共识算法(Consensus Algorithm)是分布式系统中用于确保多个参与者能够就单一数据值达成一致的一类算法。在分布式系统中,多个节点需要协同工作以完成任务,而这些节点之间可能存在网络延迟、节点故障等问题。共识算法的目标就是在这样的环境中,确保所有诚实的节点能够就某项决策达成一致,即使某些节点可能表现出故障或恶意行为。共识算法是分布式系统中至关重要的组成部分,它们确保了在不可靠的网络环境中,多个节点能够就某一决策达成一致。

wendao76的专栏 2395

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

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

分布式 & 一致性算法 & Paxos & 总结

Paxos算法是目前公认解决分布式一致性问题的最有效算法之一,甚至可以说它是过去几十年里一切分布式一致性算法的源头。我们对Paxos算法进行描述时通常都会带上“容错&共识”两个关键字,那么它们具体代表的是什么呢?

说淑人的所思所想 1605

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【分布式】共识算法:Paxos和Raft

共识算法:Paxos和Raft

qq_34461637的博客 1271

分布式共识算法Paxos

分布式共识算法Paxos原理概述

MapleWalker的博客 1629

分布式一致性算法——Paxos 和 Raft 算法

本文主要围绕Paxos算法和Raft算法进行了讨论。我们首先介绍了分布式一致性算法的概念和必要性,然后分别从算法基本原理、角色和状态、基本流程、选举过程、优缺点等方面详细介绍了Paxos算法和Raft算法。同时,我们也对这两种算法进行了比较和区分,并讨论了如何选择合适的算法以满足不同场景下的需求和限制。为了更加清晰地描述算法的流程,我们也对Paxos算法和Raft算法的基本流程和选举过程进行了图形化展示。本文将对从事分布式系统相关工作的人员有所帮助,有助于更好地理解分布式一致性算法。

Shockang的博客 6682

分布式算法之 Basic Paxos 算法

分布式算法之Basic Paxos算法 01 | 导读 1、Paxos 算法包含 2 个部分 1. Basic Paxos 算法,描述的是多节点之间如何就某个值(提案 Value)达成共识 2. Multi-Paxos 思想,描述的是执行多个 Basic Paxos 实例,就一系列值达成共识 2、其他 1. 当前最常用的共识算法都是基于Paxos 算法改进的,例如,Fast Paxos 算法、Cheap Paxos 算法、Raft 算法。 2. 在 Basic Paxos 中,使提案代表一个提议。在提案中

z_z_z_666666的博客 1089

分布式算法:Paxos及Multi-Paxos

Basic Paxos主要阐述了prepare和accept两个阶段以及在这两个阶段中proposer和acceptor的行为。更细节的事情都是由Multi-Paxos来完成的,例如提高效率、日志完整性复制等。其实这些内容在Paxos论文中都详细描述了。至此,笔者还是建议同学将本文搭配Paxos论文一起学习,这样才了解的更透彻;更进一步的话,有余力的同学可以实现一下Paxos算法。笔者下一步就是实现Raft算法,敬请期待。

xwnxwn的专栏 522

分布式一致性Paxos算法

不违背以前作出的承诺的前提下,回复已经通过的提案中提案号最大的那个提案所设定的值和提案号 Mmax,如果这个值从来没有被任何提案设定过,则返回空值。Multi Paxos 算法思想,简单说就是在多个提议者的情况下,选出一个 Leader(领导者),由领导者作为唯一的提议者,这样就可以解决提议者冲突的问题。前面描述的可以称之为 Basic Paxos 算法,在单提议者的前提下是没有问题的,但是假如有多个提议者互不相让,那么就可能导致整个提议的过程进入了死循环。的一致性算法,目前公认的解决。

weixin_44984196的博客 951

paxos算法_分布式一致性算法——paxos

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在关于分布式事务、两阶段提交协议、三阶提交协议一文中主要用于解决分布式一致性问题的集中协议,那么这篇文章主要讲解业内公认的比较难的也是最行之有效的paxos算法。我认为对pax...

weixin_39919089的博客 179

分布式算法 - Paxos、Raft、ZAB复习

由于复习Redis的时候,Redis哨兵集群选举采用的是Raft算法,因此简单看一下Raft算法和类似的经典一致性算法Paxos算法,以及顺便看了一下Zookeeper使用的ZAB算法。只是简单理解,如有偏差请指正,不胜感激。

是袁同学呀 1639

分布式算法-Paxos

分布式算法-Paxos 最近工作中遇到了分布式相关的问题,由于我们业务场景的要求,需要我们实现强一致性并且目前采用了CAP协议,满足CP舍弃了A。下面就让我们一起学习一下这个大名鼎鼎的Paxos算法吧。 这个是分布式算法高频的面试考点哦。 一、简介 Paxos算法是Leslie Lamport在1990年提出的一种基于消息传递且具有高度容错特性的共识(consensus)算法。它是一组协议,用于在不可靠或易出错的处理器组成的网络中解决一致性问题。协商一致意见是一组与会者就一项结果达成一致意见的过程。

Road_的专栏 1174

Paxos算法是什么意思,分布式算法paxos全称是什么缩写吗

paxos是取自作者故事中希腊岛屿的名字Paxon。 Paxos算法是莱斯利·兰伯特(Leslie Lamport)在1990年提出的一种基于消息传递的一致性算法。这个算法被认为是类似算法中最有效的。 Lamport 是通过故事的方式提出Paxos 问题,我们就有必要简述下这个问题:希腊岛屿Paxon 上的执法者(legislators,后面称为牧师priest)在议会大厅(chamber)中表决通过法律,并通过服务员传递纸条的方式交流信息,每个执法者会将通过的法律记录在自己的账目(ledger)上。.

当我谈编程时我谈些什么 908
上一篇: 分布式系统之Quorum机制
下一篇: 分布式事务理解
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值