高并发,很多时候死在了mysql上面,毕竟mysql的qps比较低,特别是业务数据比较复杂的时候
- 系统拆分
- 缓存
- 消息队列
- 分库分表
- 读写分离
- 搜索引擎
1.系统拆分
将一个系统根据一定的原则划分为几个子系统,划分的粒度根据业务场景,可以参考微服务的治理方式。子系统的数据库独立,单个mysql 所承受的qps
2.缓存
读多写少,redis 单机都能轻松支持几万的并发
3.消息队列
削峰填谷神器,kafka ,单机都能轻松支持几万的并发,消费者消费的时候,控制在 mysql 承载范围之内。
4.分库分表
大库拆成多个小库,大表拆成小表,提高mysql的查询修改的效率,从而提高整个系统的效率
5.读写分离
读多写少,增加从库的数量。
6.搜索引擎
把一些搜索的功能切换至搜索引擎
做高并发要远远比上面提到的点要复杂几十倍到上百倍