如何实现发帖子的评论功能(企业级)

1:用户量有百万级
2:用户发帖
3:评论,点赞,转发等。
类似于微博

一个时段进行分表分库。
发帖 评论 转发都是功能。
这个不涉及金额的。也没有回滚的业务。

在不考虑性能的情况下,先把功能实现,之后再考虑性能,这里先不考虑
实现步骤:
1.用户表
2.帖子表
3.评论表
4.点赞表
我这里要说的是评论表,点赞表的设计
评论表表定义字段
id
comment 评论内容
parentId 评论表上级,用户A评论了,用户B回复了,那回复的评论记录,parentId 就是用户A评论的记录id
userId 用户id,评论用户的id
postId 帖子id
like_count 点赞数量(这个字段可以冗余,也可以不需要)
...... 其他字段如创建时间状态等等

点赞表
id
userId 用户id,点赞的用户id
commentId 评论id
...... 其他字段如创建时间等等

大概的表设计就是这样,有了表的设计,实现起来就很容易了

1,数据库分库分表,虽然Memcached,redis承受一定量的QPS是没问题的,但是还是会有部分请求打到数据库,所以数据库上要做到读写分离,主从,灾备等措施。
2,用redis,对redis不仅仅局限于使用哦,点赞这快用户量非常大的话,一定要做好redis的key和value选型,前面的帖子id的设计也要设计好。非常又必须对redis进行二次开发,利用redis进行点赞的计数器。重点在redis上。
3,或者用elasticsearch和hbase做存储。
4,mq做削峰
基本上上面的技术解决百万用户问题不大。