本发明属于全站动态加速api毫秒级缓存,尤其涉及一种用于动态加速系统的api缓存方法。
背景技术:
1、当并发量较大时,回源请求就会瞬间集中到源站,大规模消耗源站的资源,这种场景就可能存在一个问题:一旦源站的处理能力出现瓶颈,性能会变得很差,甚至发生宕机等异常事故,无法正常响应,降低响应效率,影响客户的体验感。同时,针对同一资源的多次回源响应,存在网络流量带宽的浪费以及不必要的耗时问题。
技术实现思路
1、本发明所要解决的技术问题是针对背景技术的不足提供本发明提出一种用于动态加速系统的api缓存方法,本发明实现毫秒级缓存资源,既不影响实时性还缓解了源站的压力,对于同一资源的多次回源响应,旨在减少网络流量带宽的浪费以及不必要的耗时问题,更大化的利用网络资源。
2、本发明为解决上述技术问题采用以下技术方案:
3、一种用于动态加速系统的api缓存方法,具体包含如下步骤;
4、步骤1,加载边缘网关的配置文件,读取频道配置参数;
5、步骤2,客户端向边缘网关发起动态api回源请求;
6、步骤3,当请求到达全站加速边缘网关后,判断是否为api动态回源请求:若不是动态回源请求,则转发给本节点的ats服务器来获取资源;
7、步骤4,若没有开启扩展缓存键功能或者在共享内存中没有查找到扩展缓存键对应的响应数据,则按照默认缓存键去共享内存中获取对应的响应数据,若共享内存中存在默认缓存键的响应数据且没有过期,则对响应数据进行解码处理,返回给客户端;
8、步骤5,若共享内存中同时不存在扩展缓存键和默认缓存键对应的响应数据,则通过发起子请求的方式回源站获取响应数据;
9、步骤6,根据源站返回响应数据中的响应头状态以及响应体大小,判断是否需要对该资源进行缓存;若需要缓存且开启了扩展缓存键功能,则对响应数据进行编码处理,将响应数据存入共享内存中,同时将请求内容响应给客户端;
10、步骤7,若需要缓存且不存在扩展缓存键,则对响应数据进行编码处理,按照默认缓存键将响应数据存入共享内存中,同时将请求内容响应给客户端。
11、步骤8,若不需要缓存,则直接响应给客户端。
12、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤1中,边缘网关加载api毫秒级缓存域名的配置文件,读取api毫秒级缓存功能的配置参数。
13、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤1中,所述配置参数包含缓存时间和扩展缓存键。
14、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤3中,若是动态回源请求,则判断频道配置参数中是否开启了扩展缓存键功能;若开启了扩展缓存键功能,边缘网关则优先按照扩展缓存键去共享内存中获取对应的响应数据。
15、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤3中,若共享内存中存在对应的响应数据且没有过期,则对响应数据进行解码处理,返回给客户端
16、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤3中,扩展缓存键为频道配置指定,包含api请求的uri参数、api请求头对象、api请求cookie对象。
17、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤4中,默认缓存键包含请求url+域名为默认缓存key。
18、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤6中,按照扩展缓存键的方式将响应数据存入共享内存中。
19、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤1中,在步骤6中,响应数据指整个后端的响应数据,包括响应头,响应状态码,响应体。
20、作为本发明一种用于动态加速系统的api缓存方法的进一步优选方案,在步骤6中,共享内存中可自定义配置缓存过期时间。
21、本发明采用以上技术方案与现有技术相比,具有以下技术效果:
22、1、本发明结合动态加速系统,在源站非实时更新的场景下,利用边缘网关上的共享内存根据过期时间(可以设置毫秒级)自动管理存储内容的特点,实现api请求后端响应数据的毫秒级缓存功能;当客户端再次发起同一个请求时,由共享内存直接响应给客户端,无需经过一系列路径回源站获取资源,既不影响资源的实时性,又减少了回源量,缓解源站的压力,提升系统的响应速度;
23、2、本发明支持扩展缓存键值的指定功能,可以满足客户的多样化需求;边缘网关会优先按照扩展缓存键对资源进行缓存,并对缓存资源进行数据隔离,保证不同客户的资源不被相互干扰,帮助客户实现价值的最大化;
24、3、本发明现有动态加速系统中边缘网关使用流式的方式给客户端响应数据,为能缓存完整的响应数据,采用子请求回源方式获取完整的响应数据,存储在共享内存中,避免缓存资源的不完整性;
25、4、本发明将api请求的后端响应数据缓存于共享内存中,当源站资源异常时也可以获取到资源,提高命中率,进而提升页面显示的稳定性;同时,避免出现同一资源的多次回源响应现象,减少网络流量带宽的浪费以及不必要的耗时问题,更大化的利用网络资源。
1.一种用于动态加速系统的api缓存方法,其特征在于:具体包含如下步骤;
2.根据权利要求1所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤1中,边缘网关加载api毫秒级缓存域名的配置文件,读取api毫秒级缓存功能的配置参数。
3.根据权利要求2所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤1中,所述配置参数包含缓存时间和扩展缓存键。
4.根据权利要求1所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤3中,若是动态回源请求,则判断频道配置参数中是否开启了扩展缓存键功能;若开启了扩展缓存键功能,边缘网关则优先按照扩展缓存键去共享内存中获取对应的响应数据。
5.根据权利要求4所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤3中,若共享内存中存在对应的响应数据且没有过期,则对响应数据进行解码处理,返回给客户端。
6.根据权利要求4所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤3中,扩展缓存键为频道配置指定,包含api请求的uri参数、api请求头对象、api请求cookie对象。
7.根据权利要求2所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤4中,默认缓存键包含请求url+域名为默认缓存key。
8.根据权利要求2所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤6中,按照扩展缓存键的方式将响应数据存入共享内存中。
9.根据权利要求2所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤1中,在步骤6中,响应数据指整个后端的响应数据,包括响应头,响应状态码,响应体。
10.根据权利要求2所述的一种用于动态加速系统的api缓存方法,其特征在于:在步骤6中,共享内存中可自定义配置缓存过期时间。