1、高可用架构具备特征

1、主从切换或双机双工

1)主从切换,是当其中一台机器的服务宕机后,对于调用者来说,能够迅速的切换到其他可用服务,从服务升级为主服务,这种切换速度应当控制在秒级别。

当宕机的服务恢复之后,自动变为从服务,主从服务角色切换。主从切换一定是要付出代价的,所以当主服务恢复之后,也就不再替换现有的主服务。

高可用架构设计工具 高可用架构方案_nginx

2)双机双工方式(互备互援) 工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统

2、集群工作

高可用架构设计工具 高可用架构方案_nginx_02

请求量比较大,单台服务不能满足需要,此时需要多台机器提供同样的服务,将所有请求分发到不同机器上。

高可用架构中应该具有丰富的负载均衡策略和易调节负载的方式。

甚至可以自动化智能调节,例如由于机器性能的原因,响应时间可能不一样,这时候可以向性能差的机器少一点分发量,保证各个机器响应时间的均衡。

3、横向易扩展

当用户量越来越多,已有服务不能承载更多的用户的时候,便需要对服务进行扩展,扩展的方式最好是不触动原有服务,对于服务的调用者是透明的。

2、高可用方案

1、数据库

一主多从,读写分离

2、nginx负载均衡

nginx是一个反向代理服务器,拥有丰富的负载均衡策略,用于客户端与服务器之间,作为负载均衡的实现。

反向代理:被代理的是服务器,也就是客户端访问了一个所谓的服务器,服务器会将请求转发给后台真实的服务器,真实的服务器做出响应,通过代理服务器将结果返给客户端。服务器对于用户来说是隐藏的,用户不知道真实的服务器是哪个。

用nginx做实现服务的高可用,nginx本身可能成为单点,遇见的两种解决方案,

一种是公司搭建自己的DNS,将请求解析到不同的NGINX,

一种是配合keepalive实现服务的存活检测。如下图:

高可用架构设计工具 高可用架构方案_nginx_03

3、redis

1)多主多从模式,三主三从集群模式,部署在三台服务器上

2)伪集群模式,只有一台服务器情况下也可以创建伪集群,多节点。

4、zookpeer

同redis

5、eureka

同redis