【背景】设计一个十全十美的容灾方案,在技术和成本上是非常大的挑战,因此可以考虑服务降级和业务补偿。
场景:
Redis、Memcache、OCS(阿里云产品)通常用户缓存用户登录信息,这样使得用户不用频繁登录系统。
在容灾切换到新的机房后,连接信息通常会失效,如果考虑缓存全部自动同步到备机房,技术难度较大。
解决方案:
业务支持幂等重试,即重试时也会获得相同的结果。
以登陆场景为例:
1、被动提醒登陆:当因网络切换导致用户访问前端APP和页面异常时,由网页和APP提示客户再次登陆,并配合友好提示,比如“由于网络波动,信号不稳定,请重新登录”,使用者通常是不会很排斥的。
2、主动发起重连:比如有些银行的APP,每次打开都会发起一次登陆验证,或者后台定时重新连接。这样使用者是无感知的。