一. 数据库
1. 数据库选择
- 关系型数据库:MySql(结构化数据,支持事务)
- 非关系型数据库:Redis(速度快,缓存)、MongoDB(文档型存储,便于扩展字段)
- 大数据:Hive
2. 数据库高可用
MySql主从模式:保证数据库高可用,防止数据库宕机导致的系统不可用或数据丢失
Redis集群模式:保证redis高可用,也可以引入哨兵机制(Sentinel)进行 集群监控(节点可用性)、消息通知(异常告警)、故障转移(选举新的master)
3. 数据库瓶颈
读多写少的场景,可以做读写分离(可以用 Mysql中间件 ProxySQL实现)
数据超过千万,读写性能就很差,可以做分库分表(Sharding-JDBC),选择分片键 和 分片策略(取模,范围,一致性hash)
二. 业务服务层