- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
javaweb项目为什么我们要放弃jsp概要
* 总结一下新的方式的请求步骤: ? 大量并发浏览器请求---web服务器集群(nginx) ---应用服务器集群(tomcat)---文件/数据库/缓存/消息队列服务器集群 ? * 1 发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。 接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。 2 3 可以实现真正的前后端解耦,前端服务器使用nginx放静态资源,后端用tomcat放动态接口,加快整体响应速度 在大并发情况下,我可以同时水平扩展前后端服务器。 新方式的好处 5 减少后端服务器并发压力,除了接口以外的所有http请求全部转移到前端nginx上。 4 6 7 即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。 也许你也需要有微信相关的轻应用,那样你的接口完全可以共用,如果也有app相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率。 页面显示的东西再多也不怕,因为是异步加载。 * 谢 谢 Java Web项目 为什么我们要放弃JSP * 原因: 1、前后端解耦 2、 动静分离 * 为什么要前后端解耦? 为什么要动静分离? * 一一道来…… * 以前 java web项目都是java程序猿又当爹又当妈 又搞前端(ajax/jquery/js/html/css等等) 又搞后端(java/mysql/oracle等等) * 现在 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情,正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 * 实际 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开,先从专业性人才做起。 ? * 前端 html+css+js+ajax+json+xml等,现在还有html5+css3,框架js如jQuery 。 * 后端 把精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心竞争力才会越来越高。 * 扯远了…… * 项目实例 * JSP前端 结果前后端高耦合且后端权重极大 需求定完了,代码写完了,测试测完了,然后呢?要发布了吧。你需要用eclipse把你的代码打成一个war包,然后发布到生产环境下的web容器(tomcat/jboss/weblogic)里,然后启动web容器提供服务。 使用了若干后台框架,springmvc/struts + spring jdbc/hibernate /mybatis 等等,三层结构:控制层,业务层,持久层(dao) 各种标签(jstl/el)或者手写java(%=%)将后台的数据展现出来 后端 * 回想下……你的前后端代码是不是全都在那个war包里?包括你的js,css,图片,java,各种第三方的库,对吧?前后端全混杂在一起。 * 项目进入实用……用户开始通过网站域名访问,浏览器在通过ip路由到你的服务,在tcp3次握手之后,通过http协议开始访问你的web服务器,你的web服务器得到请求后,开始提供服务,接收请求并通过response返回你的应答给浏览器。 * 我们先假设首页中有100张图片,以及一个单表的查询,此时,用户的看似一次http请求,你的100张图片,浏览器要连着请求100次http请求,你的web服务器接收这些请求,需要消耗大量的内存玩命的去创建socket来完成tcp传输。 * 重点来了web服务器的压力非常大,因为页面中的所有请求都是只请求到你这台服务器上,1个人还好,如果10000个人并发访问呢(先不聊web服务器集群,这里就说是单实例web服务器),那你的服务器能扛住多少个tcp链接?你的服务器内存有多大?能抗住多少IO?会不会宕机? * 从理论上讲你可以把你的数据库+应用服务+消息队列+缓存+用户上传的文件+日志+等等都扔在一台主机上。但是这样就好像是你把鸡蛋都放在一个篮子里,隐患非常大。 * 所以……以后的java web项目都尽量要避免使用jsp,越是大中型的web应用就越要搞前后台解耦,玩分布式架构,这样我们的应用架构才更强。 * So…… 正常的分布式架构,是都要拆开的,你的应用服务器集群(前,后)+文件服务器集群+数据库服务器集群+消息队列集群+缓存集群等等。 * 总结JSP的痛点 * 现在javaWeb项目业界的标准是nginx+tomcat,动静分离,请求先到nginx,所有的静态资源请求全部交给nginx,动
文档评论(0)