
架构设计
文章平均质量分 93
fedorafrog
这个作者很懒,什么都没留下…
展开
-
分布式AKF拆分原则
1. 前言当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能?在面对Scalability可伸缩性问题时,我们必须有一个系统的方法论,才能应对日益复杂的分布式系统。这一讲我将介绍AKF立方体理论,它定义了扩展系统的3个维度,我们可以综合使用它们来优化性能。2.什么是AKFAKF立方体也叫做scalacube,它在《TheArtofScalability》一书中被首...转载 2021-04-12 20:54:23 · 1360 阅读 · 1 评论 -
分布式事务(二)LCN分布式事务框架
1. 简介LCN框架在2017年6月发布第一个版本,目前最新已经达到5.0版本。LCN早期设计时,1.0版本和2.0版本设计步骤如下:锁定事务单元(Lock) 确认事务模块状态(Confirm) 通知事务(Notify)取各自首字母后名称为LCN。LCN框架从5.0开始兼容了LCN、TCC、TXC三种事务模式,为了和LCN框架区分,从5.0开始把LCN框架更名为:TX-LCN分布式事务框架。2. TX-LCN原理TX-LCN由两大模块组成,TxClient、TxManager。转载 2021-03-25 08:26:11 · 1023 阅读 · 0 评论 -
三种常见的限流算法(漏桶、令牌桶、滑动窗口)
在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。1. 令牌桶算法令牌桶算法是比较常见的限流算法之一,大概描述如下:所有的请求在处理之前都需要拿到一个可用的令牌才会被处理; 根据限流大小,设置按照一定的速率往桶里添加令牌; 桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢转载 2021-03-15 19:11:51 · 7171 阅读 · 0 评论 -
一篇好TM长的关于配置中心的文章
配置 (Configuration)配置(Configuration) 这个概念每个技术人都不陌生,可以说一个不提供几个配置参数的系统都不好意思上线跟别的系统打招呼。那么为什么会是这个样子呢,究其本质是我们人类无法掌控和预知一切,映射到软件领域上,我们总是需要对系统的某些功能特性预留出一些控制的线头,以便我们在未来需要的时候,可以人为的拨弄这些线头从而控制系统的行为特征,我把它叫做 “系统运行时(runtime)飞行姿态的动态调整“。举个简单的例子,logLevel = INFO系统正常飞行转载 2021-03-10 13:37:26 · 781 阅读 · 0 评论 -
分库分表技术演进&最佳实践
移动互联网时代,海量的用户每天产生海量的数量,比如:用户表 订单表 交易流水表以支付宝用户为例,8亿;微信用户更是10亿。订单表更夸张,比如美团外卖,每天都是几千万的订单。淘宝的历史订单总量应该百亿,甚至千亿级别,这些海量数据远不是一张表能Hold住的。事实上MySQL单表可以存储10亿级数据,只是这时候性能比较差,业界公认MySQL单表容量在1KW以下是最佳状态,因为这时它的BTREE索引树高在3~5之间。既然一张表无法搞定,那么就想办法将数据放到多个地方,目前比较普遍的方案有3个:分区转载 2020-07-20 16:54:56 · 339 阅读 · 0 评论 -
一致性Hash原理
1. 前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。2. 一致性...转载 2020-02-15 11:10:32 · 285 阅读 · 0 评论 -
分布式唯一ID生成方案
1. 分布式ID的特性唯一性:确保生成的ID是全网唯一的。 有序递增性:确保生成的ID是对于某个用户或者业务是按一定的数字有序递增的。 高可用性:确保任何时候都能正确的生成ID。 带时间:ID里面包含时间,一眼扫过去就知道哪天的交易。2. UUID算法的核心思想是结合机器的网卡、当地时间、一个随记数来生成UUID。优点:本地生成,生成简单,性能好,没有高可用风险 缺点:长度过...转载 2020-02-13 14:49:57 · 208 阅读 · 0 评论 -
分布式事务(一)理论知识和解决方案
1. 相关概念1.1 分布式事务定义分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。1.2 XA协议X/Open...转载 2020-01-15 10:53:58 · 457 阅读 · 0 评论