真实项目部署的框架设计

浅谈真实项目部署框架的选择与搭建

在项目部署的时候我们会遇到服务器搭建,选择框架等问题。
在部署时,主要从并发量数据量两个方面考虑。我们简单例举一些情况。

(一)单机模式

当数据量和并发量都没有太大压力时一般选择单机模式,单机模式的特点是将Java运行环境(tomcat)和数据库安装在一台服务器上。用户通过浏览器访问服务器。
在这里插入图片描述
服务器上打开各自使用的端口,进行数据的交互查询。

(二)分离模式

当需求量增大,我们就要对服务器进行优化,当操作基本不变,只是数据量增大,访问量增大时,我们可以讲Java运行环境(tomcat)和数据库安装在不同的服务器上,该模式的性能瓶颈会出现在tomcat和MySQL相互竞争服务器资源。
在这里插入图片描述
服务器1,可以是高内存,高带宽服务器2,是大硬盘的配置。
分开部署,提升处理能力,相比于加强一台服务器性能,更经济两台服务器,确实提升了性能,但是增加了复杂度,增加了出错的可能,优化是有成本的,必须要用的时候再用。

(三)引入缓存模式

当我们继续增大需求量时,我们就需要考虑缓存的问题:
注意:一次用户操作(比如提交考卷),controller执行几句Java代码,service也是执行几句Java方法,dao直接操作数据库(连接数据库,sql注入到数据库,数据库执行sql,结果返回给Java),相比之下,dao的操作要耗费更多时间和资源(因为数据库是在硬盘读取,速度很慢)。
性能瓶颈:数据库的读写能力达到瓶颈(就算并发量大,在tomcat处理不了那么多并发之前,数据库已经不行了)。
这是,我们就要引进缓存技术或者是分布式技术。
在这里插入图片描述
缓存可以扛住大部分的访问请求,随着用户量并发量的增长,压力主要落在单机的tomcat上(一个tomcat不够了),这时会出现我们第四种技术

(四)反向代理负载均衡模式

在这里插入图片描述
注意:三个tomcat是完全一样的,Nginx统一接收用户请求,不处理,分给不同的tomcat处理没有用户扩张性的项目,基本就到此为止了

因为Redis可以做分布式的集群(一个Redis不够的话,可以有多个Redis,配置好了以后,就像一个Redis那样使用)。
所以数据查询可以大范围的扩展性能 Nginx对应多个Tomcat,这也是集群效果,不是把1个tomcat变成2个,而是可以变成很多个 再发展的话,出问题的是MySQL,一台MySQL服务器,做增删改都不够用,或者,一台服务器存不下那么多数据了可以用MyCat这种中间价,做MySQL集群或者换成其他存储工具(HDFS上分布式的HBase等)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java培训的项目和真实的项目有以下几个区别: 1. 复杂度不同:Java培训的项目通常比较简单,重点在于让学员掌握语言的基础知识和编程技巧,而真实的项目则通常更加复杂,需要处理大量的业务逻辑、数据交互等。 2. 技术栈不同:Java培训的项目通常只涉及Java语言及其相关的技术,而真实的项目则可能需要使用多种技术栈,如前端框架、数据库等。 3. 时间限制不同:Java培训的项目通常时间比较短,只有几天到几周的时间,而真实的项目则可能需要几个月甚至更长时间才能完成。 4. 质量要求不同:Java培训的项目通常只是为了让学员掌握技能而设计的,质量要求相对较低,而真实的项目则需要达到一定的质量标准,如可靠性、性能等。 总之,Java培训的项目只是为了让学员掌握编程技能而设计的,而真实的项目则需要面对更多的挑战和问题,需要更高的技术水平和实践经验。 ### 回答2: Java培训的项目与真实的项目存在以下几个区别。 首先,培训项目往往是为了教学目的而设计的,其主要着重于让学生理解和掌握Java语言的基本语法、概念和编程技巧。因此,在培训项目中,通常会选取一些简单易懂的题目和案例,通过构建一些基本的功能模块来帮助学生逐步掌握语言的使用。 其次,培训项目往往是相对独立的,它们的规模和复杂度较小。培训项目往往只包含一些基本的功能模块,而真实的项目则可能涉及到更多的业务流程和功能需求。真实的项目通常需要更加细致的需求分析和设计,涉及到更多的模块和功能点,需要考虑更多的技术挑战和实际应用场景。 此外,培训项目通常是单机环境下的开发,而真实的项目可能需要考虑分布式架构、高并发和可扩展性等方面的问题。真实项目中还可能需要集成其他的技术和框架、进行性能优化、防止安全漏洞等工作,而这些内容在培训项目中往往不会涉及或者只是简单的介绍。 总之,Java培训项目主要是帮助学生快速入门并掌握基本的编程技能,而真实的项目则更加贴近于实际开发的需求和场景,涉及到更多的技术难点和实践经验。因此,学习Java后需要在真实项目中进行实际开发,才能更好地提高自己的编程能力和解决实际问题的能力。 ### 回答3: Java培训项目与真实项目之间存在三个主要区别。 首先,培训项目通常是为了教育和培养学生的技术能力而设计的。这些项目具有较短的时间周期和较简单的要求,旨在帮助学生熟悉Java语言和编程概念。与之相比,真实项目通常是根据实际业务需求和用户需求开发的,具有更长的周期和更复杂的功能。真实项目需要从设计、开发、测试到部署等多个阶段,学生需要了解和应用各种集成开发环境、框架和工具来完成项目。 其次,培训项目往往以教学为目标,重点在于学生对Java编程语言本身的理解和掌握。培训项目通常会强调编写规范的代码、良好的编程风格和基本的软件工程原则。而真实项目则更加注重实际业务需求的解决方案和项目的可维护性。在真实项目中,开发人员需要考虑到项目的扩展性、性能优化、错误处理等方面,同时需要与团队合作、进行版本控制等软件开发实践。 最后,培训项目通常是在一个相对封闭的环境中完成的,学生可以根据教学提供的要求和指导进行开发。而真实项目需要考虑到更多的外部因素,例如与其他系统的集成、与用户的交互等。真实项目可能面临的问题和挑战更多,需要开发人员具备分析和解决问题的能力。 总之,虽然Java培训项目可以提供学生良好的基础知识和编程技巧,但与真实项目相比,还存在一定的差异。学生需要在真实项目中不断学习和实践,才能真正掌握Java开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值