从一个简单的网站解说现最流行的构架

        本人JAVA工程师一枚,最近帮深圳一个公司写了一个深圳废品回收www.xfhuishou.cn的网站。有兴趣的可以去看看,网站,http://www.xfhuishou.cn/ ,当然有移动版www.xfhuishou.cn的.
       言归正传,先说说这个网站的构架吧,网站选用了现最流行的springMVC,MONGODB,REDIS,nginx ,一个企业简单的网站,就需要用最轻量的免费框架。SPRING MVC不用多说,简单易用,MONGODB我使用了morphia框架,API一样简单易用。有人说为什么用nginx,企业网站这点流量,没必要吧。其实,这个企业网站流量确实不是挑战,使用它,只要是它放在我自己的服务器上,而这个服务器上面放了几个其他企业的网站,这样,我可以使用它的反向代理功能配置不同URL映射到不同企业网站去

         还有,REDIS其实也不是必要的,毕竟流量那么小,没必要用CACHE.本人用CACHE,只要用REDIS自己实现了自己的SESSION,当然一个TOMCAT这样用有装B的嫌疑.其实程序员就是要我装装B才能进步嘛

当然,小网站大家多会开发,但如果流量上来了,怎么解决才是重点。其实这套架构很容易拓展。在服务层再加一个DUBBO,服务化。因为一个请求响应,大部分压力都在数据库层,服务化以后,可以部署多个服务层的应用。然后就是重要数据CACHE,REDIS就很好用,特别是它的原子性操作,用来做分布式锁也是不错的,我自己在DAO上实现了一个可缓存的CACHE层,底层是用REDIS。再加上NIGINX的反向代理功能,把请求分发到不同的应用服务器上去,解决流量大的问题。其实,CACHE很好解决N+1搜索的问题,尽量不要关联表,先把一个表的结果搜索出来,然后关联的数据到CACHE去找,性能会好很多。

       当然,流量大的以后,后面面对的问题就是数据量大,MONGODB某些文档表应该加索引的还是要加索引,但要知道,索引不要乱加,乱码也没用,毕竟MONGODB每次查询只能使用一个索引,MONGODB的自动分表功能也挻好用的,只要内存够大,用起来还是很爽。 

      深圳废品回收www.xfhuishou.cn

相关推荐