模块二:朋友圈
单机:1、发朋友圈不需要计算,因此这里不对单机计算高性能进行设计,进程模型和网络模型和微信其他 功能保持一致即可
2、发朋友圈的数据,用关系数据库存储比较合适,这里选择 mysql
集群:1、发朋友圈是一个非常简单的业务,这里不再需要进行拆分,只需要对任务分配进行负载均衡即可
2、发朋友圈的数据很多,一台数据库存不下来,需要多台进行存储,需要对数据进行分库分表存储
单机:1、评论朋友圈不需要计算,因此这里不对单机计算高性能进行设计,进程模型和网络模型和微信其 他功能保持一致即可
2、评论朋友圈的人很多,使用 redis 存储的性能比关系数据库存储的性能高一些
集群:1、评论朋友圈是一个非常简单的业务,这里不再需要进行拆分,只需要对任务分配进行负载均衡即 可
2、评论朋友圈的数据很多,使用 redis 存储能提高性能,所以使用 Redis Cluster 来进行存储
单机:1、看朋友圈不需要计算,因此这里不对单机计算高性能进行设计,进程模型和网络模型和微信其他 功能保持一致即可
2、看朋友圈不存在数据存储的问题,只需查看,数据在发朋友圈和评论朋友圈已经存储了,所以不 需要考虑
集群:1、看朋友圈是一个非常简单的业务,这里不再需要进行拆分,只需要对任务分配进行负载均衡即可
2、看朋友圈不存在数据存储的问题,只需查看,数据在发朋友圈和评论朋友圈已经存储了,所以不 需要考虑
计算高性能:1、朋友圈的用户量非常大,需使用双机房,或三机房部署
2、朋友圈的业务非常简单,不需要将发朋友圈,评论朋友圈,看朋友圈进行拆分
存储高性能:1、朋友圈的用户量非常大,需使用双机房,或三机房部署
2、发朋友圈的数据和评论朋友圈的数据已经分开,发朋友圈使用 mysql,评论朋友圈是 redis
1、发朋友圈,评论朋友圈,看朋友圈都需要进行负载均衡,因此用 nginx 对朋友圈服务器集群进行负载均衡 2、发朋友圈的数据,使用数据库集群分库分表进行存储,因此使用 sharding-jdbc,对用户 id 进行 hash 分片,把同一用户的朋友圈数据在一起
3、评论朋友圈的数据,使用 redis cluster 进行存储,提高性能,因此使用 jedis 对评论朋友圈的数据进行存储
评论