发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

昵称和头像在列表的设计思路

    
2018-05-17 11:23
赞助商链接

在一些列表场景(帖子、回复、评论)往往会附带昵称、头像这样的属性。在模型上业务肯定和用户的这些属性分开存储的,所有要么join查询、要么冗余字段、要么从缓存里取。
第一种join在现代应用中是肯定不能忍受的,尤其是在高并发、大访问量的情况下;
第二种冗余字段会涉及到当昵称或者头像更新后,会大量更新业务表,搞不好会造成锁表
第三张从缓存里取,我理解最好从jvm里缓存热点用户的信息,如果没有再从共享缓存取,但是jvm的缓存是有大小限制的,会不会造成miss到共享缓存导致性能低下呢?
请@banq老师给分析下

2018-05-18 18:51

主要依据数据量大小,如果数据量很大,可以参考Facebook之类社交网站的头像设计,也可以采用图库Neo4j。

使用缓存可以使用Redis,能够分片存储在多个服务器上。

总体设计参考CAP定理,使用BASE实现最终弱一致性,这样头像和主数据就会在加载上解耦,比如在前端通过异步方式加载等等。

分布式系统     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com