三台机器,三台什么样的机器,三台机器并发接近无穷大这问题本身就是相悖的。我认为在面试中太宽泛的问题其实就是耍流氓,不过也可以说明一点,面试官没有什么处理高并发的经验,只是想听听你的看法
三台这样的:
CPU:Intel(R) Xeon(R) CPU E7-4870 v2 @ 2.30GHz×4 总计60核
内存:512G
硬盘:fio卡,文件系统采用ext4文件系统
还是三台IBM的小型机、还是三台阿里云512M的vps,这里如何保证高可用,高性能,只能说尽最大优化,达到并发的极限
社区型平台的瓶颈在哪里,活跃用户有多少,数据量有多大,什么都没有怎么做?
只好回单业内通用的架构了
1.拆表:大表拆小表(垂直拆,水平拆;分表,分区partition,分片sharding),可以在应用层实现,也可以在数据库层面实现一部分;提高系统性能。
2.分库:把表放到不同的数据库,这也是分布式数据库的基础;提高系统性能。
3.分布式:不同的数据库放到不同的服务器;提高系统性能。
4.集群:使用数据库复制等技术组建集群,实现读写分离、备份等;提高系统性能、可用性。
5.缓存:对常用的数据进行缓存。提高系统性能。
6.备份:主从库,快照,热备,异地备份等;提高系统可用性
架构:LVS+keepalived+Java/PHP/Python+mysql/mongodb+memcached/redis+centos+nginx/apache+sphinx/solr+Gearman+Munin+TFS