简单项目一步一步进化到大量数据、大量并发架构优化方案
前言 软件的架构都是从小到大的,除非是一开始就知道软件需要承受载的数据量和并发量,并且有成熟且有经验的团队以及资源来支撑,否则其他的项目都是先做基本架构,做出功能后期再根据实际情况做架构重构优化,相信这是大部分公司的处理办法。毕竟软件前期过度优化,不仅浪费大量时间和资源,还有可能适得其反,搞不好做了一个能承受亿级流量(现在大家都喜欢说亿级流量,好像搞得不管那个公司都能有亿级流量一样,但是我也要蹭蹭热闹)的程序,最后撑死也就服务个百万人的程序,但是仅仅是这套程序的基本运行都需要大量服务器来支撑,最后活活耗死公司,毕竟不是所有公司都有大量时间和资源来烧的。所以个人觉得架构不是越复杂越好,而是要符合产品定位,以及合理的后续优化计划。 当然合理的架构不代表就是简单的架构,而是要基于可以使用的时间,数据存储量,以及预估的并发量来设计架构,当然所有的架构设计也需要考虑后期的优化或者重构,毕竟如果完全没有考虑,导致后期根本无法扩展或者重构(无法重构是指重构难度已经太大,接近重做的成本或超过重做成本),到时候只能重做那么也不算是合理的架构 另外,本文只是表达我在工作总结和记录的一些解决方案的思路,没有实际处理方法或者对应的代码,同时后面的步骤可以根据实际情况来处理,不按照顺序或者跳过某些也是可以的,毕竟没有完美和通用的架构,只有更合适的架构 第一步:简单项目(单体项目+单机部署) 最简单也是开发最快捷的项目,所有东西都在同一个项目里面,一个基本的数据库,此时所有代码都在同一个项目里面(也有可能分了模块,但是最终打包成一个jar或者一个war包),部署也是单机部署,…