消息中心给用户推送消息的时候,是按照先微信小程序用户,否则公众号用户串行逻辑来执行的(大多数消息都是按照用户手机号推送的)。小程序的用户体系相对公众号的用户体系是较少的,而且小程序用户订阅消息的量级增长的缓慢。这就出现了很多不是小程序用户的查询请求,也就是出现了上面提到 缓存穿透 现象,无形之中会增加搜索引擎和数据库压力。
小程序用户查询服务集成了布隆过滤器,很优雅的解决了缓存穿透的问题。业务上线初期,每天大约有200W到300W的请求,可以过滤掉90%以上的无效用户查询请求。看着这鲜明的效果,欣喜若狂,心想着这方案集成的太完美了,真香!
源码参考请关注微信订阅号(算法和技术SHARING),回复:bloomfilter, 便可查看。
参考资料https://www.jianshu.com/p/2104d11ee0a2
https://zhuanlan.zhihu.com/p/43263751
https://blog.csdn.net/u012422440/article/details/94088166
https://www.jianshu.com/p/44b4b42931d4