系统拆分
业务拆分
随着业务不断发展,一个系统容纳的逻辑会越来越多,大量各种业务的代码参杂在一起。无论是业务继续发展还是开发都会造成很大的影响,大量业务逻辑耦合在一起,不利于系统优化和重构。同时系统访问同一个数据库,会导致数据库压力过大。
需要将过于复杂的系统拆分为多个子系统,业务分拆,同时将数据库也拆分成多个库。
读写拆分
可以考虑将查询逻辑和业务逻辑分开
缓存
大部分的高并发场景,大多是读多写少。大量的查询会大大增加数据库的压力,一些数据可以考虑放在缓存中,然后读的时候直接走缓存。 redis虽然单线程但是多路复用可以轻松抗下万级的压力,提高系统性能。
MQ
对于写的场景,有些并不一定要求强实时,可以通过mq将同步转异步。将消息灌入 MQ中,之后慢慢消费mq消息处理后续逻辑。通过mq消峰,达到减缓系统压力的目的。
数据库方面
分库分表
分库分表,将一个数据库拆分为多个库,多个库支持高并发。数据表拆分成多个表,避免因为表中数据太多影响sql性能
读写分离
数据库读写分离,写主读从。
使用ElasticSearch替换mysql
一些比较简单的查询、统计类或者全文搜索类的操作,可以考虑用 es 来承载。

5925

被折叠的 条评论
为什么被折叠?



