首页
学习
活动
专区
圈层
工具
发布
首页标签腾讯技术创作特训营S16

#腾讯技术创作特训营S16

系统可扩展性的真实上限,往往由最难以水平扩展的单点组件决定。有哪些单点组件瓶颈?

软件系统如何对数据一致性模型做出选择?

李福春code for life . 用代码解决碰到的问题。
已采纳
提到 数据一致性 ,分为强一致性,最终一致性; 强一致性 很容易对应到分布式事务对数据一致性的保证,各种模式,seata框架。 框架很完整,但是落地成本高,对软件系统的性能和吞吐量影响也大; 最终一致性就是各种补偿,事后对比过程数据一致; 很多公司都会采用这种,站在已经发生的事情上,后面做补偿,难度没那么高,也不影响软件系统核心业务的性能和吞吐量; 只要业务方满意,不违背商业本质,数据一致性用啥方式都行。 数据一致性 跟这个相关的还有CAP理论中的C(一致性)。还有就是对软件系统做设计的时候, AP 还是CP的决策; 1. 强调一致性(CP系统) 场景示例:银行系统的账户余额管理 银行账户数据必须保证严格一致,任何时候查询账户余额,都要保证是最新且准确的数据。系统网络发生分区时,不能因为保证可用性而返回错误余额,宁愿拒绝服务或等待恢复。 决策: 优先保证一致性和分区容错性,牺牲部分可用性。 例如:使用分布式锁或共识算法(如Paxos、Raft)来确保数据一致。 2. 强调可用性(AP系统) 场景示例:社交媒体点赞计数 点赞数即使有短时间的不一致也不会造成严重影响,用户体验更重视响应速度和系统持续可用。即使发生网络分区,系统也会继续响应请求,稍后同步数据。 决策: 优先保证可用性和分区容错性,允许短暂的数据不一致。 例如:使用最终一致性模型,异步数据同步和冲突解决机制。 感觉这个是个投资回报率的问题,追求绝对的一致往往要付出巨大的成本,在业务容忍的范围内选择性能、成本、可用性的平衡,才能最大化回报率; 设计分层的一致性策略: 核心账务:强一致 用户行为:最终一致 统计分析:弱一致... 展开详请
提到 数据一致性 ,分为强一致性,最终一致性; 强一致性 很容易对应到分布式事务对数据一致性的保证,各种模式,seata框架。 框架很完整,但是落地成本高,对软件系统的性能和吞吐量影响也大; 最终一致性就是各种补偿,事后对比过程数据一致; 很多公司都会采用这种,站在已经发生的事情上,后面做补偿,难度没那么高,也不影响软件系统核心业务的性能和吞吐量; 只要业务方满意,不违背商业本质,数据一致性用啥方式都行。 数据一致性 跟这个相关的还有CAP理论中的C(一致性)。还有就是对软件系统做设计的时候, AP 还是CP的决策; 1. 强调一致性(CP系统) 场景示例:银行系统的账户余额管理 银行账户数据必须保证严格一致,任何时候查询账户余额,都要保证是最新且准确的数据。系统网络发生分区时,不能因为保证可用性而返回错误余额,宁愿拒绝服务或等待恢复。 决策: 优先保证一致性和分区容错性,牺牲部分可用性。 例如:使用分布式锁或共识算法(如Paxos、Raft)来确保数据一致。 2. 强调可用性(AP系统) 场景示例:社交媒体点赞计数 点赞数即使有短时间的不一致也不会造成严重影响,用户体验更重视响应速度和系统持续可用。即使发生网络分区,系统也会继续响应请求,稍后同步数据。 决策: 优先保证可用性和分区容错性,允许短暂的数据不一致。 例如:使用最终一致性模型,异步数据同步和冲突解决机制。 感觉这个是个投资回报率的问题,追求绝对的一致往往要付出巨大的成本,在业务容忍的范围内选择性能、成本、可用性的平衡,才能最大化回报率; 设计分层的一致性策略: 核心账务:强一致 用户行为:最终一致 统计分析:弱一致

中国基础软件如何放弃内卷出海捞金?

李福春code for life . 用代码解决碰到的问题。

待我围观 头哥 ,听听内容之后,再深入思考。

领券