单点架构是采用缓存的架构:避免单节点的缓存问题:
高可用的应用:有状态的应用的应用的Session管理
包括:单实例模式:
单实例模式:使用Web服务器管理Session
集群模式: Session复制,比如tomcat session,使用Cookies 记录Session,
专门的Session服务器:比如Springsession.
高可用的服务: 通过负载均衡进行无状态服务的失效转移
分级服务:核心服务,服务管理。
超时设置:超时后重拾,就可以转移到其他服务上
异步调用:消息队列,线程池
服务降级:保障核心服务的运行
保障方式:拒绝部分请求
关闭服务:
幂等性涉及:保障多次调用,结果一致。
高可用的数据: 数据备份,失效转移
CAP原理:
数据备份:按照冷热分类:冷备:定时备份
热备:实时备份:同步热备:所有备份节点都成功,才算成功
异地热备:MySQL主从架构,主写,从读。
另外一种:完全备份:备份所有数据差异备份:备份上一次的完全备份后发生的数据。
增量备份:上一次备份后,备份所有发生的变化的数据。
按需备份:按需要选择进行备份。
集群环境下,Session管理的主要手段:
Session复制:不同的应用服务器之间相互复制Session。如果集群很大,则复制量太大,不适合大集群。比如Tomcat的Session复制。
Session绑定(会话粘滞):使用基于IP的Hash算法实现,即对请求IP地址做Hash算法,得出应该访问哪一个服务,后面每次都会固定访问这个服务。如果这台服务宕机,那么Session信息就会丢失。比如Nginx的IP Hash负载均衡策略。
通过负载均衡进行无状态服务的失效转移
分级管理:高优先级的服务使用更好的硬件,并对服务进行隔离,避免故障的连锁反应
异地备份:是容灾系统的核心技术,它不同于上面的备份方法,它的特点是具有异地性。它对于保证数据的一致性、可靠性及系统的可扩展性具有重要作用。通过有效的数据复制,实现远程的业务数据与本地业务数据的同步,确保一旦本地系统出现故障,远程的容灾中心能够迅速进行完整的业务接管。其典型例子就是911事件,尽管对金融业造成的巨大损失,但是他们的业务还能够正常运行。