
第一步:客户端发送请求
第二步:Nginx负载均衡接收到各请求并多线程分配给不同的集群—服务器
第三步:服务器接收到请求后,可能会从不同的集群—服务器中调用接口,来完成整条业务逻辑的处理
第四步:进行查库或者写库操作。
- 查库操作:先检查redis等缓存数据库中是否存在目标数据,无数据则查数据库,再把查询出的数据缓存在缓存数据库中,可加快下次查询的速度,到设定清除时间为止,都无人查询该数据,则清除,若期间内进行了二次查询,则从二次查询即日起,清除日期延后一个周期;
- 查询可能会发生缓存击穿或缓存穿透现象
- 缓存击穿:缓存数据库中正常的热载数据,经过恶意查询后,替换了原有的数据,会导致大批量正常用户的使用发生崩溃现象
- 缓存穿透:缓存数据库中会存有热载数据(常被查询的内容),由于查询的关键字不为热载数据,因此需要进行查询操作的第二步,在数据库中进行查询
- 查询可能会发生缓存击穿或缓存穿透现象
- 写库操作:写入主库后,需同步到从库中
- 会有多个从库,因为写库的次数远少于查库;
第五步:前期业务处理完成后,其业务流程中需要滞后处理的业务,皆存入消息服务器中,并在设定的时间进行响应
本文详细阐述了Web服务的高可用实现过程,包括客户端请求、Nginx负载均衡的多线程分配、服务器间的接口调用以及数据库操作。在查询操作中,首先检查Redis缓存,缓存未命中时查询数据库并更新缓存。缓存策略中,介绍了缓存击穿和穿透的现象及其影响。写库操作涉及主从库同步,确保数据一致性。此外,对于滞后处理的业务,会存入消息服务器按需响应。
1201

被折叠的 条评论
为什么被折叠?



