摘要:
数据库写入请求量过大,导致系统出现性能与可用性问题 常见的方式就是对数据库做“分库分表”,在实现上有三种策略:垂直拆分、水平拆分、垂直水平拆分 分库分表的整体设计方案和技术实现的落地思路。一般会涉及这样几个问题: 什么场景该分库?什么场景该分表? 复杂的业务如何选择分片策略? 如何解决分片后的数据查 阅读全文
posted @ 2023-03-14 15:39
jiaozg
阅读(46)
评论(0)
推荐(0)
摘要:
MySQL 主从复制的原理 MySQL 的主从复制依赖于 binlog ,也就是记录 MySQL 上的所有变化并以二进制形式保存在磁盘上。复制的过程就是将 binlog 中的数据从主库传输到从库上。这个过程一般是异步的 写入 Binlog:主库写 binlog 日志,提交事务,并更新本地存储数据。 阅读全文
posted @ 2023-03-14 15:03
jiaozg
阅读(36)
评论(0)
推荐(0)
摘要:
MySQL 的事务隔离级别(Isolation Level) 数据库锁,分为悲观锁和乐观锁,“悲观锁” 悲观锁一般利用 SELECT … FOR UPDATE 类似的语句 乐观锁利用 CAS 机制,并不会对数据加锁,而是通过对比数据的时间戳或者版本号,实现版本判断。 脏读: 读到了未提交事务的数据。 阅读全文
posted @ 2023-03-14 14:43
jiaozg
阅读(64)
评论(0)
推荐(0)
摘要:
下面这条 SQL,你怎么通过索引来提高查询效率呢? select * from order where status = 1 order by create_time asc 更优的方式是建立一个 status 和 create_time 组合索引,这是为了避免 MySQL 数据库发生文件排序。因为 阅读全文
posted @ 2023-03-14 14:14
jiaozg
阅读(57)
评论(0)
推荐(0)
摘要:
抢购系统大概可以分为四个阶段 商品预约:用户进入商品详情页面,获取购买资格,并等待商品抢购倒计时。 等待抢购:等待商品抢购倒计时,直到商品开放抢购。 商品抢购:商品抢购倒计时结束,用户提交抢购订单,排队等待抢购结果,抢购成功后,扣减系统库存,生成抢购订单。 订单支付:等待用户支付成功后,系统更新订单 阅读全文
posted @ 2023-03-14 13:51
jiaozg
阅读(163)
评论(0)
推荐(0)
摘要:
在使用 MQ 的时候,怎么确保消息 100% 不丢失? 引入 MQ 消息中间件最直接的目的是:做系统解耦合流量控制,追其根源还是为了解决互联网系统的高可用和高性能问题。 系统解耦:用 MQ 消息队列,可以隔离系统上下游环境变化带来的不稳定因素,比如京豆服务的系统需求无论如何变化,交易服务不用做任何改 阅读全文
posted @ 2023-03-14 10:38
jiaozg
阅读(68)
评论(0)
推荐(0)
摘要:
对于整条 RPC 调用链路(从 App 到网关再到各个服务系统),怎么设置 RPC 的超时时间,要考虑哪些问题?” 结合 TP99 请求耗时:首先如果你要回答“超时时间设置和重传次数问题”,需要根据每一个微服务 TP99 的请求耗时,以及业务场景进行综合衡量。 RPC 调用方式:你要站在业务场景下, 阅读全文
posted @ 2023-03-14 10:10
jiaozg
阅读(99)
评论(0)
推荐(0)

浙公网安备 33010602011771号