读书笔记(SRE:Google运维解密):第26章 数据完整性:读写一致

SRE:Google运维解密(心得) SRE:Google运维解密(心得)风险与可用性错误预算总结: 风险与可用性 在一个运行的系统中,出现风险是不可能避免的,而运维工程师的存着便是控制并解决风险。 书中提到构建百分百可靠的服务是不可取的,因为一个服务面向用户的不止是可靠,还有创新。当可靠性达到一定的数量级后,再花费大量的成本在可靠性上而忽略服务的创新,这种方式得不偿失。 书中还提到可用性为多少个‘9’这个概念 上面提到额外一个‘9... 阅读详情

-数据完整性意味着用户可以维持对云服务的访问,用户对数据的访问能力是最重要的,所以这种访问能力的完整性非常重要。
 

  • 大多数云计算应用都是优化以下5项的某种组合:在线时间、延迟、规模、创新速度和隐私。
    • 在线时间:经常也用“可用率(availability)”指代,代表着某个服务可以被用户使用的时间比率。
    • 延迟:服务对用户的响应时间。
    • 规模:某个服务的用户数量,以及能够维持正常服务水平的最高负载。
    • 创新速度:某个服务能够在合理成本下,为用户提供更好的服务的创新速度。
    • 隐私这个名词的定义比较复杂。简单来说,本章将隐私的定义限制为仅仅针对数据删除:用户删掉服务中的数据后,数据必须在合理时间内被真正摧毁。
       
  • 备份与存档

一般来说,公司会采用某种备份策略来“预防”数据丢失。然而,真正应该被关注的重点其实是数据恢复,这是区分备份与存档的重要区别。就像一句流行语说的那样:没有人真的想要备份数据,他们只想恢复数据。
 
那么,如何评判你的备份是不是只是一个存档,而不是灾难恢复中的可用的“备份”呢?
 
备份与存档最重要的区别就是,备份是可以直接被应用程序重新加载的。因此备份和存档的使用场景非常不同。
这段挺有意思,有助于纠正认知

 

  • 云计算环境的技术难点
    • 如果该环境使用了混合交易型和非交易型的备份和恢复方案,那么最终恢复的数据不一定是正确的。
    • 如果某个服务必须在不停机的情况下更新,那么不同版本的逻辑可能同时并行操作数据。
    • 如果所有其他有交互关系的服务不是同步更新的,那么在更新过程中各服务的不同版本之间可能会有多种组合,那么就更加增大了数据意外丢失和损坏发生的概率。

为了保证扩展性,每个服务提供商都需要提供一定数量的API。这些API必须简单易用,否则就没有人会使用它们。但是同时这些API又必须可靠,以及支持以下特性:

  • 数据本地性和缓存。
  • 本地和全局的数据分布。
  • 强一致性与/或最终一致性。
  • 数据持久性、备份与灾难恢复。

否则的话,复杂应用将没有办法迁移到云上,而简单的应用程序,随着时间推移变得更为复杂,将会由于需要使用不同的、更复杂的API而进行完全重写。

 

  • 数据完整性指的是在其生命周期中,数据的准确性和一致性。从数据被记录的那一刻开始,一直到数据被访问的时候,数据应该保持正确,不会以某种未预知的方式改变。
     
  • 备份其实就像纳税一样,是一个服务需要持久付出的代价,来保障其数据的可用性。刷新认知

不应该强调应该纳多少税,而是应该强调这些税会用来提供什么服务:数据可用性的保障。因此,不会强迫团队进行“备份”,而是要求:

  • 各团队需要为不同的失败场景定义一系列数据可用性SLO(服务等级目标)。
  • 各团队需要定期进行演练,以确保他们有能力满足这些SLO。

 

  • 造成数据丢失的事故类型,从很高的角度来看,可以将事故分类为3个因子的24种组合。
    在这里插入图片描述

3个因子分别是:

  • 根源问题:
    某种无法恢复的用户数据丢失是由以下几个因素造成的:用户行为、管理员的错误、应用程序的Bug、基础设施中的问题、硬件故障和部署区的大型事故。
  • 影响范围
    有些数据丢失是大规模的,同时影响很多实体。有些数据丢失是非常有针对性的,仅仅是一小部分用户的数据损坏或者丢失。
  • 发生速度
    有些数据丢失是一瞬间造成的(例如,100万条数据在一次操作中被替换成了10条)。而有些数据丢失是缓慢持续进行的(例如,每分钟丢失10条数据,但是持续了一周时间)
     

最常见的用户可见数据丢失场景是由于数据删除和软件Bug造成的引用完整性问题。其中遇到的最困难场景是,由于包含Bug的版本在更新数周、甚至数月之后才发现在生产环境中造成的数据损坏或者丢失。

 

  • 维护数据完整性的深度和广度的困难之处
    在设计数据完整性保障机制时,必须要认识到复制机制和冗余并不意味着可恢复性。
    • 扩展性问题:全量、增量以及相互竞争的备份和恢复机制
    • 保留期,是数据备份保存的时间,是另外一个需要考虑的因素

当别人问你“是否有备份”的时候,一个经典的错误回答是“我们有比备份更好的机制—复制机制!”复制机制很重要,包括提高数据的本地性(locality),保护某个部署点单点事故等。但是有很多数据丢失场景是复制机制无法保护的。一个自动同步多个副本的数据存储多半会在你发现问题之前,将损坏的数据记录以及错误的删除动作更新到多个副本上。
为了应对这个问题,会将数据定期导出成其他某种格式,例如将数据库导出成一个本地文件。这种机制可以在一定程度上针对用户错误和应用程序层面的Bug提供保护,但是仍然无法保护更底层的问题。同时,这种机制引入了几种新的危险—数据转换过程中的Bug(双向的),本地文件的存储问题,以及两种格式之间潜在的语义区别。
 
零日漏洞(zero-day),又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞

 

  • 某个对象从软删除到彻底摧毁的过程
    在这里插入图片描述
  • 第一层:软删除
    软删除意味着被删除的数据立刻被标记为已删除,这样除了管理后台代码之外其他代码不可见。管理后台这里可能包括了司法取证场景、账号恢复、企业管理后台、用户支持,以及在线排错等。
  • 第二层:备份和相关的恢复方法
    这一层中最重要的理念是:备份不重要;最重要的是恢复。对“恢复”提供支持,应该是主导备份系统设计的关键。

由此可见,在设计备份还原系统时,必须考虑:

  • 使用哪种备份和还原方法。
  • 通过全量或者增量备份建立恢复点(restore point)的频率。
  • 备份的存储位置。
  • 备份的保留时间。
  • 备份应该保存多久呢?
  • 第三层:早期预警
  • 额外一层:复制机制

在理想世界中,每个存储实例,包括那些保存了备份的存储系统都应该具有复制机制。否则,就有可能在数据恢复过程中,才发现备份文件自身丢失了数据,或者发现保存备份文件的那个数据中心正在进行维护。
随着数据量的增长,不是每个存储系统都可以进行复制。在这种情况下,将不同层级的备份存放在不同部署点上是更合理的,这样每个部署点不会同时出现故障。同时,应该将备份文件放置在某种冗余机制之上,例如RAID、Reed-Solomon纠错码,或者GFS类型的复制机制之上。
当选择冗余系统时,不要选择一种不常用的系统。因为这种系统的可靠性只能通过本身就很罕见的数据恢复过程来测试。正确的做法是,选择一个非常常见,并且被许多用户持续使用的系统。

GoogleSRE保障数据完整性的手段 就像我们假设Google的底层系统经常出问题那样,SRE同样假设任何一个数据保护机制都可能在最不适合的时间出现问题。在所依赖的软件系统不停改变的情况下保障大规模数据的完整性,需要很多特定选择的、相互独立的手段来各自提供高度保障。由于数据丢失类型很多(如上文所述),没有任何一种银弹可以同时保护所有事故类型,我们需要分级进行。分级防护会引入多个层级,随着层级增加,所保护的数据丢失场景也更为罕见。图26-2显示了某个对象从软删除到彻底摧毁的过程,以及对应的分级数据恢复策略。第一层是软删除(softdeletion)(或者是某些API提供的“懒删除”机制)。这种类型的保护在实践中被证实是针对意外数据删 立即下载

相关推荐

GE Proficy Historian8.0历史数据库部署与配置全攻略

本文提供了GE Proficy Historian 8.0历史数据库的详细部署与配置指南。内容涵盖安装前的系统环境、权限与依赖检查,服务器安装的关键步骤与类型选择,采集器的安装配置与数据接入,以及客户端工具的使用与数据分析实战。旨在帮助用户规避常见陷阱,实现一次部署成功,构建稳定高效的工业数据归档平台。

silver的专栏 768

C. 高可用架构 --- 数据完整性 --- Google SRE保障数据完整性的手段

C. 高可用架构 --- 数据完整性 ---Google SRE保障数据完整性的手段 概述 用户删除数据 用户可见的垃圾 措施 用户可以还原 好处 预防用户错误 应用程序删除数据 用户不可见,有应用程序或者存储服务软删除 措施 可以被用户支持团队或者应用程序管理员恢复 好处 防范应用程序Bug和服务管...

micklongen的专栏 881

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文全面解析了青龙人形机器人硬件平台的设计与实现,涵盖构型设计、驱动系统、能源方案及控制系统等核心模块。重点介绍了43个自由度的仿生学实践、关节模组的技术突破以及多模态感知融合等创新设计,为开发者提供了从理论到实战的完整指南。

embedding5hiker的博客 890

《Google SRE 运维解密》读书笔记

Google SRE算是行业的标杆,运维中的特种兵。简单来说,就是SRE很贵,很能干,而且主要是巧干。换句话说,不懂开发的运维,不是真正的SRE. 翻译版的这本书《Google SRE运维解密》很早就想看了,也...

congbao6525的博客 650

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

Win10网络图标消失,网络图标变成灰色,打开网络设置闪退等问题解决

介绍 主要解决如下问题 网络图标消失 常用方法配置中出现的网络图标变成灰色没有办法打开 打开网络和Internet闪退 错误提示`网络发现已关闭。网络计算机和设备不可见。请启动网络和共享中心的网络发现。 连不上网,诊断结果为 依赖服务或组无法启动 这个问题大概率通过重装系统不能解决,请大家谨慎测试之后最后选择重装这个路线。 方法1:这一步一定要做(卸载三方软件) 把360安全卫士,软件管家这些东西都卸载掉。 我的问题一开始就是这个软件引起的,可能他检测到我还给台式机配了无线网卡,然后就把有线网络的一些

呆呆象呆呆的博客 3万+

SRE读书笔记-SRE方法论(未完待续)

SRE读书笔记-SRE方法论介绍系统管理员模式google的解决之道 SRE 介绍 在读《SRE-google运维解密》总会不自觉的代入到现有的运维环境来思考,对比两种模式的差异,方法论如果不落地,永远是方法论,好的方法本土化,最终落地,才是好方法! 引用中,是作者的一些经验想法,如果有谬误和片面的地方,请指正! 系统管理员模式 SRE认为IT部门分为DEV和OPS,属于系统管理员模式,优势是...

白开水的博客 1779

用74LS160和74LS194搭个复古流水灯:从Multisim仿真到面包板实战(附完整电路图)

本文详细介绍了如何使用74LS160和74LS194芯片搭建复古流水灯电路,从Multisim仿真到面包板实战的全过程。通过解析核心器件特性、提供完整材料清单、仿真验证电路逻辑,以及实际搭建中的布局规划和调试技巧,帮助电子爱好者掌握这一经典数字电路设计项目。

weixin_28736355的博客 389

Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面 最近花了一点时间阅读了《SRE Goolge运维解密》这本书,对于书的内容大家可以看看豆瓣上的介绍。总体而言,这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题,对于我们运维乃至开发人员都有一定的借鉴意义。 书中的一些思想也令我印象深刻,例如SRE工程师要保证投入50%的时间在项目上、错误预算、命运之轮、事故总结等等,对于从业者有很大的启发。...

aifeier1982的博客 1267

YOLOv12涨点改进 | CVPR 2026 |独家创新首发、特征融合改进篇 | 引入Local Attender 局部注意力算子融合模块,高效捕捉小目标和密集目标的局部上下文特征,助力高效涨点

🚀本文提出LocalAttender模块改进YOLOv12模型,通过局部注意力机制解决传统上采样方法的语义漂移问题。该模块采用固定偏移邻域加权聚合方式,在保持线性计算复杂度的同时有效捕捉小目标和密集目标的局部特征。实验表明,LocalAttender能显著提升检测精度而不增加过多计算负担,且与YOLOv12兼容性强。文章详细介绍了模块原理、实现方法和配置步骤,并提供了两种改进方案的具体yaml配置文件。这一创新为提升目标检测性能提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 120

【机器学习概率统计】11 贝叶斯统计推断:最大后验

这一节,我们来介绍另外一种统计推断方法:贝叶斯统计推断方法。 1.回顾贝叶斯定理 首先,我们先来复习一下贝叶斯定理: p(Θ∣X)=p(X∣Θ)p(Θ)p(X)p(\Theta|X)=\frac{p(X|\Theta)p(\Theta)}{p(X)}p(Θ∣X)=p(X)p(X∣Θ)p(Θ)​ 在这个简简单单的式子当中,蕴含了我们要掌握的很多重要内容: 贝叶斯定理当中的四个概率表达式,他们都非常重要,在这一节的内容中将反复出现,我们来一一解析一下: p(Θ)p(\Theta)p(Θ):先验分布。 反映的是在

机器学习数学基础系列专栏 3271

《SRE:Google 运维解密》读书笔记27: 数据完整性 - 当“数据还在”不等于“用户信了”

数据完整性是衡量为用户提供适当水平服务所需的数据存储的可访问性和准确性的标准。”但这个定义还不够。维度含义用户关心的问题可访问性用户的数据在需要时能够被访问“我的邮件/照片/文件在哪里?准确性用户读到的数据与他们写入的数据完全一致“我的数据是正确的吗?这个定义之所以“不够”,是因为它忽略了用户对系统的感知。正如Gmail例子所示,用户感知的完整性比客观的完整性更重要。如果用户认为数据已经丢失,即使技术上数据完好无损,系统的声誉也会受损。实际可量化的SLO要求。

1771

Ghost卷积原理与构建YOLOv11的GhostNet变体

本文探讨了在边缘设备部署YOLOv11时使用Ghost卷积进行模型轻量化的实践经验。针对Jetson Nano的4GB内存限制,作者通过替换Backbone中的3x3标准卷积为Ghost卷积,实现了参数减少28%、推理速度提升38%,仅损失1.1%mAP的优化效果。文章详细介绍了Ghost卷积的实现原理、在YOLOv11中的具体替换策略,以及训练调参和部署优化的关键技巧。作者强调轻量化是计算效率与模型性能的权衡,建议工程团队保留原模型和Ghost变体两个版本,根据实际需求灵活切换。Ghost卷积的核心价值在

as1225120794的博客 169

读书笔记(SRE:Google运维解密):第25章 数据处理流水线

经典的数据处理方式是通过一个程序读取输入,执行某种模式变换,然后输出新的数据。一般来说,这种程序由类似于Cron的某个周期性的调度程序控制。这种设计模式被称为数据流水线(data pipeline)。经典的数据处理方式是通过一个程序读取输入,执行某种模式变换,然后输出新的数据。一般来说,这种程序由类似于Cron的某个周期性的调度程序控制。这种设计模式被称为数据流水线(data pipeline)。   简单流水线设计模式与大数据 对大数据进行周期性的或者是持续性的变形操作的程序通常被称为“简单.

lo_ong的博客 445

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

温度PID控制PLC程序

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

《SRE:Google 运维解密》读书笔记26: 数据处理管道 - 当数据处理变成“输油管道”

数据处理管道 = 多阶段数据转换的有序链条——周期性模型虽实用但脆弱,领导者-追随者模型是更可靠的替代方案;管道的可靠性依赖于幂等性、检查点和批量写入的三层机制,而整条链的效率由最慢的分块决定。关键点一句话概括管道的本质读入→转换→输出,由Cron周期性调度管道深度串联程序的数量,浅则1、深可达数百脆弱性根源有机增长破坏初始调校的参数平衡桶效应整条管道由最慢的分块决定完成时间领导者-追随者模型调度逻辑与处理逻辑分离,替代周期性管道的可靠方案不连续性挑战。

1799

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

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

《SRE:Google运维解密》读书笔记(一)

1.SRE是目前最火的devops模型在google具体实践;2.Google SRE都有的共同特点是对重复性工作有排斥感以及喜欢用技术来代替手工操作;3.SRE核心的工作职责是变更管理、监控、故障处理、可用性改进以及优化;4.SRE将运维工作限制在50%,剩余时间花在研发上。5.SRE最终工作是在系统的稳定性和灵活性保持平衡;6.一个需要人工阅读邮件和分析警报来决定目前是否需要采取某种行动的系统...

weixin_33699914的博客 537

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

《SRE:Google运维解密》读书笔记

第7章 Google的自动化系统的演进 自动化的价值:一致性、平台性、修复速度更快、行动速度更快、节省时间 综合思想是,纯人工操作在较小型的环境中或许可行,但人工操作难免会存在失误,以及“琐事”现象。尤其是在大型的分布式系统中,从成本和失误率考虑,纯人工操作是不可进行的,必须使用一定的自动化技术。 自动化是“元软件”,即操作其他软件的软件。对应上文的“50%法则”,必须至少有50%的开发时间。 自动化工具Puppet、Chef、cfengine,另外Perl提供了POSIX级别的接口方便与系统交互。 集群故

DPCFish的博客 1706

读书笔记(SRE:Google运维解密):第5章 减少琐事

如果系统正常运转中需要人工干预,应该将此视为一种Bug。   到底什么是琐事?琐事就是运维服务中手动性的,重复性的,可以被自动化的,战术性,没有持久价值的工作。而且,琐事与服务呈线性关系的增长。每件琐事都满足下列一个或多个属性: (a)手动性:手动运行脚本以便自动执行一些任务 (b)不停反复做的工作。如果你正在解决一个新出现的问题或者寻求一种新的解决办法,不算作琐事。 (c)可以被自动化的 (d)战术性的:突然出现的、应对式的工作,而非策略驱动和主动安排的。处理紧急警报是琐事。我们可能永远无法完.

lo_ong的博客 542

SRE读书笔记——第一章

第一部分 从sysadmin到服务管理         IT时代最初系统管理员(sysadmin),系统管理员负责将软件组合到一起提供服务,并负责系统的升级工作.但是随着系统复杂度的增加和事务的增加,系统管理员开始承受应对部端增多的事件和升级等工作.因为系统管理员需要与产品开发人员不同的技能,开发人员和系统管理员被分成两个团队:"development"和"operations"

ucan23 1099

【读书摘抄&笔记】SRE : 谷歌运维解密——I

Part I IntroductionChapt 1. IntroductionThe Sysadmin Approach to Service ManagementDevs v.s. OpsSite Reliability EngineeringComposition of SRE teamSRE modelTenets of SREThe responsibilityEnsuring a Durable Focus on EngineeringPursuing Maximum Change Veloci

塌肩的10号休息室 976

SRE Google 运维解密 具体实践二

十四、管理关键状态:利用分布式共识来提高可靠性 跨物理区域分布式运行系统可以解决很多的系统灾备问题,以保障在灾难来临时系统仍然能正常运行。但是却带来维护系统一致状态视图的需求,而这个问题的解决常常是复杂且难以实现的。 一组服务进程可能想要可靠地对以下问题产生共识: 哪个进程目前是该组织进行的leader?本组中都包含哪些进程?是否已经将某个消息成功地插入了某个分布式队列?某个进程目前是否

watermelonbig的专栏 3362

读书笔记(SRE:Google运维解密):第1章 概览

SRE究竟是如何在Google起源的? SRE就是让软件工程师来设计一个新型运维团队的结果   SRE团队成员具有如下特点: (a)对重复性、手工性的操作有天然的排斥感。 (b)有足够的技术能力快速开发出软件系统以替代手工操作。   Google的经验法则 SRE团队必须将50%的精力花在真实的开发工作上   DevOps 核心思想是尽早将IT相关技术与产品设计和开发过程结合起来,着重强调自动化而不是人工操作,以及利用软件工程手段执行运维任务等   ..

lo_ong的博客 528

数据的完整性

什么是数据的完整性 作用:保证 用户的输入的数据 保存到数据库 是正确的 比如: 年龄,应该是数字 学号:应该是不重复的 成绩:不能为空 怎么去保证数据的完整性:添加约束 完整性约束分类: 实体(记录)完整性 域完整性 引用完整性 实体的完整性(行) 实体(entity):就是表中一行的(记录)数据 实体完整性:标识 每一条数据不重复 约束类型(通过什么方式解决这个问题) 主键约束(primary key) 不能为空,不重复 唯一约束(unique) 不重复,可以为空 自增长列(auto_increment

wsq__的博客 209

读书笔记(SRE:Google运维解密):第17章 测试可靠性

对服务质量的自信可以用过去的系统可靠度和未来的系统可靠度来衡量。前者可以通过抓取和分析历史性监控信息来获得,后者可以用基于历史数据的预测来量化。为了让这些预测信息足够准确,必须满足下列条件中之一: (a)在这段时间内,该系统完全没有改变。包括没有任何软件更新以及服务器数量变化,这意味着未来的行为方式应该与过去的行为方式类似。 (b)可以充分描述整个系统的所有改变,这样可以针对每个系统变化引入的不确定性进行分析。   软件测试的类型:传统测试和生产测试 (a)传统测试: 1)单元测试:单元测试(.

lo_ong的博客 716

读书笔记(SRE:Google运维解密):第11章 on-call轮值

作为生产系统的监管者,on-call工程师负责处理生产环境中即将或者正在发生的业务事故,以及评审对生产系统的变更请求。   紧急事件(incident)的定义是:一系列根本原因一致或者相关的事件和报警信息,这些事件应该在同一个事后报告中讨论   现代理论研究指出,在面临挑战时,一个人会主动或非主动(潜意识)地选择下列两种处理方法之一: (a)依赖直觉,自动化、快速行动。 (b)理性、专注、有意识地进行认知类活动。   在应急事件处理过程中,最理想的方法论是这样的:在有足够数据.

lo_ong的博客 700
上一篇: 读书笔记(SRE:Google运维解密):第25章 数据处理流水线
下一篇: 读书笔记(SRE:Google运维解密):第27章 可靠地进行产品的大规模发布
github_37320188
博客等级 码龄10年 24粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值