集群环境下,Session管理的主要方式:
1、Session复制 适用于集群规模较小
2、Session绑定 将来源于同一IP的地址,分配到固定的服务器
3、利用Cookie记录Session 缺点 Cookie受大小限制,如果关闭Cookie,访问就会受限。、
4、Session服务器 将应用服务器状态分离、分离成有状态的Session服务器,无状态的应用服务器
高可用服务的策略:
1、分级管理
2、超时设置
3、异步调用
4、服务降级、拒绝服务 关闭功能
5、幂等性设计 指应用调用服务失败后,会将调用请求重新发送到其他服务器,但是这个失败可能是虚假的失败。缺点,服务重复调用是无法避免的,因此必须在服务层保证服务重复调用和调用一次产生的结果相同,即服务具有幂等性。
高可用的数据
保证数据存储高可用的手段主要是数据备份和失效转移机制。数据备份是保证数据有多个副本,失效转移机制是保证当一个数据副本不可访问时,可以快速切换访问数据的其他副本。
高可用数据有以下几层含义:
1、数据持久性
2、数据可访问性
3、数据一致性
CAP原理
数据一致性(Consisency):
a、数据强一致:各个副本数据在物理存储中总是一致的
b、数据用户一致 :即数据在物理存储中各个副本的数据可能不一致,但是终端用户访问时,通过纠错和校验机制,可以确定一个一致的且正确的数据返回给用户
c、数据最终一致、系统经过一段时间(比较短)的自我修复和修正,数据最终达到一致
数据可用性(Avalibility)
分区耐受性(Patition)
数据备份:
冷备:
热备:Master - Slave
失效转移
1、失效确认(心跳检测和应用程序访问失败报告)
2、访问转移
3、数据恢复
高可用网站的软件质量保证:
1、网站发布 集群中一部分的替换
2、自动化测试
3、预发布验证
4、代码控制
5、自动发布
6、灰度发布
7、网站运行监控(重点)