一种解决大流量频繁重复预估的方法与流程

文档序号:37263957发布日期:2024-03-12 20:45阅读:14来源:国知局
一种解决大流量频繁重复预估的方法与流程

本发明涉及信息系统工程,具体为一种解决大流量频繁重复预估的方法。


背景技术:

1、实际网约车过程中,流量渠道的预估请求往往会因为一些原因而过于频繁,在实际观测中有一些大流量渠道预估调用次数与下单调用次数比例关系有较大异常,500次预估/1次下单,而且时间较为接近,地理位置坐标较为一致的预估,比如渠道的一些配置或流程原因导致请求预估流量过大,或者乘客的一些操作原因,或者频繁追加车型进行预估,导致运力预估接口量较大。这就导致运力方面的服务器缓存与计算压力较大,高峰时可能导致redis或者服务器崩溃。

2、缺点(提出现有技术的不足):1.缓存按照单车型缓存,一个车型缓存一批预估信息,一些公共的字段(比如预估值estimatedkey,预估路线lbseskey等)重复缓存,在流量较大时redis内存影响较大;2.对于重复调用或者位置坐标和时间差异较小的预估,也是重新进行计算与缓存,导致服务器压力与缓存压力较大;故提出一种解决大流量频繁重复预估的方法。


技术实现思路

1、(一)解决的技术问题

2、针对现有技术的不足,本发明提供了一种解决大流量频繁重复预估的方法,具备节约lbs系统和计费系统缓存以及服务器资源等优点,解决了重复缓存,服务器压力与缓存压力较大的问题。

3、(二)技术方案

4、为实现上述节约lbs系统和计费系统缓存以及服务器资源目的,本发明提供如下技术方案:

5、一种解决大流量频繁重复预估的方法,包括以下步骤:

6、步骤一:渠道预估请求:渠道发送预估请求,包括渠道号(channel)、服务类型(servicetypeid)、上车点和下车点坐标(经度和纬度)、预定乘车时间、车型(groupid)等信息;

7、步骤二:开放平台预估接口:开放平台接收预估请求,并进行后续的预估处理流程;

8、步骤三:坐标点处理:上车点和下车点的坐标保留小数点后4位,记作slo1、sla1、elo1、ela1,确保上车点和下车点都在大约11米范围内,以减小预估价差异;

9、步骤四:预定上车时间处理:预定上车时间(bookingdate)向最近的5分钟的倍数靠近,记作bookingdate1;例如,如果bookingdate是“2023-07-0519:49:21”,则bookingdate1是“2023-07-0519:50:00”;

10、步骤五:生成pricetoken:将渠道号、服务类型、坐标点、预定时间拼接成字符串rawkey,然后对rawkey进行md5加

11、步骤六:查询缓存:使用生成的pricetoken作为key,查询redis缓存获取预估数据;pricetoken的缓存格式为json字符串,包含多车型预估价(m)、预估路线(l)和计费系统生成的预估价(e)的缓存key;

12、步骤七:查询缓存是否存在:如果estimatedkey为空,则表示缓存中没有对应的预估数据;此时需要调用lbs(位置基础服务)进行预估距离、时长和生成预估路线的lbseskey;同时,调用计费系统进行预估,生成唯一预估价的estimatedkey和多车型预估值,并将预估数据缓存起来;

13、步骤八:缓存预估数据:开放平台将计费系统返回的预估值、预估key和预估路线key缓存起来,使用pricetoken作为key,缓存时间设置为10分钟;

14、步骤九:查询预估数据:如果estimatedkey不为空,则调用计费系统,利用estimatedkey查询计费系统缓存的多车型预估价;

15、步骤十:计算新增车型预估价:如果没有对应车型的预估缓存,需要对新增的车型进行预估计算;根据计费系统缓存的里程、时长和预定时间等参数,计算得到该车型的预估价,并将新的预估值缓存到estimatedkey对应的rediscache中,并返回预估数据给开放平台;

16、步骤十一:返回预估数据:如果有对应的车型缓存,直接返回预估数据给开放平台;

17、步骤十二:验证车型:开放平台验证是否有对应的车型;如果有,则根据预估键(estimatedkey)从计费系统获取计费缓存数据,组装结果参数,返回给渠道;

18、步骤十三:更新缓存:如果没有对应的车型缓存,将该车型的预估价写入开放平台的pricetoken缓存的m字段中;例如,如果原有车型34和43的缓存数据,新增预估车型41,则将预估价写入m字段中并缓存起来密,生成pricetoken。

19、作为本发明优选的一种技术方案,所述步骤一渠道号为channel,服务类型为servicetypeid,上车点坐标(上车经度slo,上车纬度sla)与下车点坐标(下车点经度elo,下车点ela),预定乘车时间bookingdate,车型groupid(可以为多车型如:33,43),渠道名称channel,原上车点和下车点坐标为小数点后有6位或者更多位,如"118.59252125",分别保留4位小数点"118.5925",分别记作:slo1,sla1,elo1,ela1,此处可以保证上车地点和下车地点都在原来大约11米范围内,最后预估价差异较小。

20、作为本发明优选的一种技术方案,所述步骤四的预定上车时间bookingdate向最近的5的倍数分钟靠近记作bookingdate1。

21、作为本发明优选的一种技术方案,所述步骤六根据生成的pricetoken,查询redis缓存,获取预估获取预估estimatedkey,pricetoken的缓存格式为json字符串,为了节约redis缓存,将key简化为一个字母,m为多车型预估价,值为json字符串,车型id为key,预估价为value,l为路线的lbseskey为lbs生成的预估路线缓存的key,e为estimatedkey为计费系统生成的预估价缓存的key;如果estimatedkey为空,则调用lbs预估距离和时长和预估路线lbseskey,调用计费系统进行预估,计费系统生成唯一的一个预估价estimatedkey和多车型预估值,进行缓存预估数据。

22、作为本发明优选的一种技术方案,所述步骤八的开放平台对计费系统预估值、预估key和预估路线key缓存,使用步骤六方式生成的pricetoken作为key,步骤五中的缓存格式组装数据为value缓存,缓存时间10分钟,组装预估信息返回给渠道,结束流程;如果estimatedkey不为空,则调用计费系统,利用estimatedkey查询计费系统多车型groupid如34,43,41的缓存预估价;如果没有对应车型预估缓存,比如原有缓存34和43车型id,追加一个豪华型车型41,则对新增的车型41进行预估计算,根据计费系统缓存的里程,时长和预定时间等参数计算获得该车型预估价,将新的预估值缓存到estimatedkey作为key的redis缓存中,并返回预估数据给开放平台。

23、作为本发明优选的一种技术方案,所述步骤十三开放平台验证是否有对应的车型,如果有则直接根据预估estimatedkey从计费查到计费缓存,拼接结果参数返回给流量渠道;如果没有,则将该车型的预估价写入开放平台pricetoken缓存的m中,如原有车型缓存为34和43新增预估车型id为41。

24、(三)有益效果

25、与现有技术相比,本发明提供了一种解决大流量频繁重复预估的方法,具备以下有益效果:

26、该解决大流量频繁重复预估的方法,通过从运力方面出发,运力开放平台将一些预估特征值参数如渠道号,预定上车点坐标,预定下车点坐标,预定时间经过一定的处理,进行md5作为运力开放平台预估pricetoken,首次预估时,调用lbs系统和计费系统计算预估信息,利用redis缓存,同一次多个车型的预估信息放到同一个缓存中,这样在特定的渠道特定的地点范围和特定的时间内,重复的预估将会从计费缓存直接获取,而不需要再次重复预估计算,节约lbs系统和计费系统缓存以及服务器资源。

27、通过对预定上车时间进行取整和使用缓存机制,可以快速缓存和读取相似或重复的预估请求,提高预估效率;通过使用pricetoken来查询redis缓存,可以避免重复计算相同请求的预估价值。如果缓存中存在预估结果,可以直接返回该结果,减少系统开销;通过将关键信息进行哈希加密并使用简化的缓存格式,可以有效节约redis缓存的存储空间,提高系统性能和响应速度;通过多车型预估价的缓存和预估计算,可以满足不同渠道对于不同车型的需求,提供更全面的服务选择;对于缓存中不存在的预估请求,系统会调用lbs和计费系统进行实时预估和路线计算,确保预估数据的准确性;当新增车型或更新车型预估价时,系统可以灵活地更新和扩展缓存数据,避免影响现有的预估请求和渠道服务;综上所述,该解决大流量频繁重复预估的方法通过优化预估请求处理、缓存查询、存储空间利用等方面,提高了预估效率、减少重复计算、提供多车型支持和实时预估功能,从而提升系统性能和用户体验。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1