1.整体高可用设计
2.应用层-前端高可用设计
① Nginx作为web容器提供前端服务;
② Nginx按照每秒一次的频率向A10发送其健康状态;
③ A10接收到客户端的请求后将请求分发到当前状态为健康的Nginx服务。
3.应用层-后端高可用设计
① Nginx作为负载均衡器分发前端调用后端的请求;
② 使用Upstream模块的轮询模式分发请求;
③ 自动剔除不可用节点,当请求一个后端节点时,失败3次则将该节点置为down状态;
④ 自动恢复,down状态的节点在30秒后会再次尝 试请求该节点,请求通过则恢复该节点。
4.应用层-后端微服务高可用设计
① 构建Eureka集群作为微服务的注册中心;
② 微服务之间的相互调用通过Feign从Eureka自动获取可用节点。
5.存储层高可用
① ActiveMQ部署为主从集群模式,应用使用failover方式连接,实现故障自动切换;
② Redis部署为哨兵模式,应用使用哨兵模式连接Redis服务,实现故障自动切换;
③MySQL部署为主从数据库,双机热备,通过keepalived配置IP自动漂移实现故障自动切换。