项目名称:商品搜索重构
业务背景:
商品的搜索有结果率较同业竞品低,搜索无结果原因不明,数据统计有误差。部分商品数据库中有但是搜索不出来。需要理清无结果原因和无结果的占比。
项目中的职责,任务:
无结果率分析、提升有结果率,相关报表生成。
技术:
spring事务:本次项目不涉及分布式事务,spring事务即可满足需求。
redis:将不经常变化的基础数据从数据库查询出来到redis缓存中,可以减少多次查询数据库的查询时间。
canal:基础数据变化导致数据库和缓存数据不一致,使用canal解析数据库binlog文件结合recoketmq消息解决数据不一致的问题。
recoketmq:
1.数据库数据发生变化canal解析binlog,将发送变化的数据发送到mq中,mq监听消息,刷新缓存。
2.用户搜索的的结果按10%的流量异步写到无结果的表中,产生报表,用于分析无结果产生的原因。
opensearch:根据商家返回数据,进行分词,将分词结果和商品数据统一保存到数据库中。
mysql:保存、查询商品数据。
相关数据指标:
搜索有结果率从75%到90%.
项目架构 图:



