另外一个回复是简单的建议,限于代码层面跟计算资源紧张的情况。
说说我的理论:
1、想要这么大的并发量,申请买几台比较好的机器,带宽加到足够大应该不是问题。
2、网络层的负载均衡考虑一下,这应该也不是啥问题,这么大并发量,别告诉我客户网络设计很垃圾。高端点的网络设备都没有。
3、软件层的结构,看用户给什么样的机器,如果经济型的机器,考虑分布式运算,分布式再从软件层面做集群或主从。根据计算密集型还是IO密集型选择适合的设备。计算密集型的业务,需要强悍的CPU(可以用多C,未必是频率高的)+内存。IO密集型的业务需要,速度快的存储,越快越好。有极致要求的考虑固态存储设备。
4、并发设计,java中主要是线程的应用。能拆分成多任务的运算一定拆成多任务。尽量压榨cpu资源,现在的工作站不会写并发程序,真浪费cpu资源。
5、数据库并发的考量,以前说mysql不如oracle现在还有人有这论调。使用的时候把参数调整到最优状态。如缓存到内存中数据大小,内存要够,就把全部表数据加载到内存中。mysql的innodb调整两三个参数就行。数据库IO访问,mysql有测算IO能力的参数,存储够好,可以调整到很大。
6、这么大的并发量,选择适合的缓存器,可以用来缓存热点数据,或加快分布式运算的IO访问能力。(磁盘肯定没内存块,包括固态)
7、代码编写完后,对系统整体进行测试,评估,分析性能瓶颈,优化代码。
能做到以上标准,tomcat+mysql跑一堆集群也不会慢。