周六师兄不辞辛苦培训吾辈五人3小时,故写此拙文以记录所知所录
此次培训主要围绕解耦这个主题,不断对代码结构和架构进行分离。
JavaWeb项目众所周知分成前端和后台(Reasultful)
前端正常来说是html5+css+js/JQuery+ajax
但是仅仅如此的话,如果后台返回一个list里面有要在页面显示出来一堆数据,怎么写?也许有人会说有for循环然后<tb><td>下去,可以是可以,除非你老板愿意继续请你。
所以前端框架应运而生,一般来说目前有angular/react/vue.js这几种,里面把上述问题优化,并且前端的人还发明一种node.js这个东西不单前端搞定,甚至涉及后台,乃至数据库都要涉及比如(mongo.js),这几种。
说到这里,那我们选做后台的还有前途,都被前端抢了饭碗??No,No,No。按照别人的理解,上述技术是速成技术,而待会所说技术才是根基所在,根基不稳,后续无力。
下面来讲讲,反响代理,服务分离,微服务,数据库读取分离这几个方面
我们知道,但一个网站的点击率到达一个极限,服务器会崩,那咋办呢?修??嗯,但怎么预防,水平拓展呗,但是三个和尚没水喝,怎么合理运用这些水平的服务器,前面撑死后面饿死,这样性能很差,所以有了反向代理(Nginx)来提高处理请求能力
何为服务分离呢?
用淘宝为例,淘宝有用户功能,查询功能,下单功能等等,那是不是这些都有一个工作群来完成,这可以,但是耦合度高,如果某个功能出错,维护起来会比较难,所以把服务分离出来,可以让开发人员更加有针对性的维护和拓展,而且对某些高需求的服务可以提高其服务器性能,这样比全部提高会节约成本
微服务??
那每个服务服务之间如果用ip地址来连接,如果不小心改了其中一个ip,那后期维护岂不是一团乱,那么微服务出来了, provider告诉注册器我可以做什么,消费者告诉注册者我要用什么,这样各取所需,目前有dubbo和springclooud
数据库读写分离??
也是用淘宝为例,每个人上淘宝,一般都是长时间看,查询(读数据)看,最后才是下单(写数据),那么如果都在一个数据库里面,对性能要求过高,如果把读写分开,写的单独几个,读的多几个数据库,这样性能能提高很多。
嗯嗯,大概就这些,第一次,谢谢