新特性
- 支持基于会话的推荐
会话推荐主要为未登录的用户提供临时的推荐结果。客户端将用户历史行为记录发送给服务节点,服务节点即可完成针对该用户的推荐。
$ curl -X POST http://localhost::8087/api/session/recommend \
-H "Content-Type: application/json" \
-d '[{ "FeedbackType": "star", "UserId": "user1", "ItemId": "item1", "Timestamp": "2022-02-24" }]'
[ "item4", "item5", "item6"]
- 支持回收无用的推荐缓存
在用户或者物品被删除之后,用户和物品的推荐缓存会被缓存回收程序回收。
为了避免被垃圾回收的缓存项目对现存的缓存产生影响,新版本在[recommend]之下提供了cache_expire,强制刷新超过一定时间没有更新的缓存,保证无用的缓存项目被安全回收。
[recommend]
# Recommended cache expire time. The default value is 72h.
cache_expire = "72h"
- 修改配置之后自动刷新推荐缓存
新版本保存了生成推荐缓存的相关配置的哈希值,能够在相关配置被修改之后自动刷新推荐缓存。
- 提供了全新的Grafana大盘
为全新的Grafana大盘提供了监控接口,搭建使用方法请参考GitRec项目。
问题修复
- 修复了删除物品和隐藏物品的可见性
之前版本出现推荐已删除物品和已隐藏物品的问题,新版本对此进行了修复。
性能优化
- 在服务节点缓存热门物品
在之前版本每次新增分类时,服务节点需要向缓存数据库查询物品热度,以将物品快速添加到新分类的热门物品中。新版本在服务节点缓存了热门物品,有效降低了缓存数据库负载。
- 在服务节点缓存隐藏物品
在之前版本的每次推荐中,需要向缓存数据库查询物品是否可见,效率低效。在新版本中,服务节点维护了一份隐藏物品缓存,有效降低了缓存数据库负载。
服务节点的缓存刷新时间[server]之下的cache_expire确定。该配置项对于热门物品的影响可以忽略不计,对于隐藏和删除物品的有一定影响。cache_expire决定了将物品从隐藏状态切换为可见状态需要的最短时间。
[server]
# Server-side cache expire time. The default value is 10s.
cache_expire = "10s"