自己复习使用。
1、高并发,防止库存超卖,redis+lua
2、高并发系统需要卡了的点:静态资源使用cdn,加入缓存并预热,使用非关系型数据库dynamodb等内存数据库,mysql数据库的读写分离,使用消息队列削峰,异步处理写入。对业务拆分,分库分表,改成微服务架构,集群部署。
3、使用位图提升查询性能
4、使用布隆过滤器解决缓存穿透。
5、限流算法 计数器法 redis可以实现 滑动窗口算法,漏桶算法 和 令牌桶都可以通过消息队列实现,虽然google的guawa可以实现限流,但是单机限流,分布式环境下无法达到目的。
6、RocketMQ性能提升方法。
7、redis主从复制,哨兵模式,集群
8、mysql读写分离,binlog日志,分库分表,分库分表带来的问题
9、消息队列的可靠性,生产者发送重试,消息队列同步复制,异步刷盘,消费者重试消费,到死信队列,重复消费,增加一个去重表。每次先插入去重表。
10、多级缓存
11、熔断降级:sentinel熔断降级策略 慢点用 异常比例 异常数
流量控制:QPS流量控制 直接拒绝 warm up 匀速排队。
高级设置里有根据调用方限流,链路限流,只限流自特定链路的请求,关联限流, 写操作频繁时,对读操作进行限流。
生产环境中使用sentinel。