控制大流量系统稳定高效地运行

项目设计:假设有一个包含Tag功能的博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1。你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以写代码/伪代码辅助说明,可以自由发挥.


使用nginx做负载均衡,如果预算允许可以使用F5,使用DNS轮询的方式,后端使用服务器集群的方式,数据库采用主从分离,分区,分表的方式,在进入数据库前采用动态数据缓存的方式,memcache读写比例可以使用主从分离,文章总数过大,可以采用单独的表来存储文章,并且采用分表的方式,将用户的其他信息放在另外的一个表中,使用用户id作为外键关联到文章表中,这样可以使用户的其它信息读取出来,可以采用memcache缓存数据控制对数据库的频繁操作。
负载均衡集群、双节点热备、分布式处理等都可以用来解决单点故障,比如提供相同业务的Web服务器、MySQL数据库从库,都可以构建负载均衡集群。一旦集群中的一台服务器、一个服务出现故障,自动实时摘除,对用户来说是不可感知的,不会影响到整个网站的访问,可以为运维工程师留下足够的时间去排查和解决故障。
可以临时关闭一些Web中的次要功能,来减少服务器消耗。

你可能感兴趣的:(技术前沿)