一、硬件
1、服务器
2、网络架构
二、软件
1、基础组件
组件名称 | 高可用方式 | 最少节点数 |
负载均衡(Tenginx) | corsync+pacemaker互为主备 多组集群通过DNS轮循实现一个大集群 | 2 |
DNS | 主从集群 | 2 |
RabbitMQ | 原生HA镜像集群 | 3 |
Zookeeper | 原生分布式集群 | 3 |
Kafka | 原生分布式集群 | 3 |
ES | 原生分布式集群 | 3 |
OpenLDAP | 主备 | 2 |
Confluence | 主备 | 2 |
| | |
2、数据库
1)数据库架构和备份策略
组件名称 | 高可用方式 | 最低节点数 | 备份策略 |
mysql | 主从 | 1主1从 | 每天全备+日志实时同步(备份保留10天) |
mysql | MGR | 3节点 | 每天全备+日志实时同步(备份保留10天) |
pg | 主从 | 1主1从 | 每天全备+日志实时同步(备份保留10天) |
redis | sentinel | 1主1从 | 主从数据同步 |
redis | cluster | 2分片1副本 | 主从数据同步 |
2)数据库架构故障
故障表现级别 | 故障表现描述 | 架构 | 日志 | 复制模式 | 备份 | 是否满足高可用 |
1 | 崩溃,数据丢失 | mysql,postgresql 单节点。 | mysql:未开启binlog。 postgresql: 开启日志级别minimal | 无 | 无 | |
2 | 崩溃,新数据丢失 | mysql,postgresql 单节点。 | mysql:未开启binlog。 postgresql: 开启日志级别minimal | 无 | 每天全备 | |
3 | 崩溃,没有数据丢失 | mysql,postgresql 单节点。 | mysql: 开启binlog 级别 statement 及以上。postgresql: 开启日志级别archive 及以上 | 无 | 每天全备+日志实时同步。 | |
4 | 主从切换,服务不可用。 | mysql,postgresql 主从 无高可用,需手动切换。 | mysql:开启binlog 级别 row。 postgresql: 日志级别hot_standby 及以上。 | 异步复制 | 每天全备+日志实时同步 | |
5 | 主从切换,用户有明显的感知。服务器基本完全可用。 | mysql:haproxy/nginx+proxysql+mysql(mha) postgresql: 待定。 | mysql:开启binlog 级别 row。 postgresql: 日志级别hot_standby 及以上。 | 异步复制。 | 每天全备+日志实时同步。 | |
6 | 主从切换,用户有很小或无明显感知。服务基本完全可用。 | mysql:haproxy/nginx+proxysql+mysql(mha) 或:mgr(待测试) postgresql: haproxy/nginx+pg_poolII+postgresql(repmgr) 待定。 | mysql:开启binlog 级别 row。 postgresql: 日志级别hot_standby 及以上。 | mysql半同步复制postgresql同步复制。 | 每天全备+日志实时同步。 | |