系统设计
文章平均质量分 71
总结一些系统设计常见的套路
Java识堂
这个作者很懒,什么都没留下…
展开
-
系统设计:读写分离
为了保证系统的高并发,肯定是需要做读写分离的。因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后从库读取binlog进行重放,这样主库和从库数据就一样,只不过并发量比较高时,会有主从同步延时问题。主从数据库延迟比较大,有可能读取到旧数据。总的来说,MySQL复制有三个步骤。原创 2018-12-07 13:44:47 · 566 阅读 · 0 评论 -
面试官:你知道的限流算法有哪些?
介绍一般做接口限流主要是为了应对突发流量,避免突发流量拖垮服务。如下面一些场景就有可能发生突发流量微博热搜恶意刷单恶意爬虫促销活动接口限流的算法有如下几种计数器算法这是最容易理解和实现的算法,假设一个接口1s中最多请求100次。最开始设置一个计数器count=0,来一个请求count+1,1s之内count<=100的请求可以正常访问,count>100的请求则被拒绝,1s之后count被重置为0,重新开始计数当然这种方式有个弊端,1s内只有最开始的100个请求能正常访问.原创 2020-04-11 21:13:00 · 6195 阅读 · 3 评论 -
系统设计:分库分表
分库分表,读写分离会带来哪些问题?前面一篇文章图解分布式系统架构(看推荐阅读)大概讲了一下分库分表,以及读写分离出现的场景,分库分表为了解决高并发和海量数据的问题。分库后会出现新的问题跨库join问题如有2个库,订单库,用户库,要查询买了某件商品的所有用户信息事务问题用户下订单的时候需要扣减商品库存,如果订单数据和商品数据在一个数据库中,我们可以使用事务来保证扣减商品库存和生成订单的...原创 2018-12-15 01:23:16 · 2518 阅读 · 0 评论