tomcat(如何实现tomcat自动化部署)
本文目录
如何实现tomcat自动化部署
像BAT这样的大公司,都是有一套自动化流水线的,出于公司安全红线要求,我无法讲的太细,但是我可以提供些思路给题主参考。
工具
工欲善其事,必先利其器,我们先来说需要哪些工具
1 git,用于保存最新要上线的代码
2 maven,用于打包项目
3 Jenkins,用于触发任务
4 sh脚本或者Python脚本,执行Jenkins任务的脚本
流程
接下来是实际的流程。
首先,由开发人员把要上线的代码上传到指定代码库。
然后,开发人员触发Jenkins任务。
这个Jenkins的任务是自动化部署的核心,包含以下步骤
1 开始对代码进行打包
2 把包放到服务器指定文件夹下
插一句,为了安全起见,我们建议的是进行热部署,何为热部署?
热部署需要Nginx+多台Tomcat的配合。
假设目前只有一台Tomcat连接到了Nginx上,那么可以把要更新的代码部署在另一台Tomcat上,然后启动新的Tomcat,确认该服务启动成功,各能力已经启动后,再去修改Nginx的conf文件,把原本给旧Tomcat的请求切到新Tomcat上,这样就实现了热部署。如果不使用这种办法,而是直接在旧的Tomcat上部署新的war包的话,重启Tomcat的过程,就会有几秒停服,这对用户来说是不可接受的。既然说到这里,再介绍两个热部署用到的Nginx的命令。在修改Nginx的conf文件后,要在Nginx的根目录下执行**in/nginx -t 来检查当前conf文件配置是否正确,如果是“successful”的,就可以执行**in/nginx -s reload来进行实现把新的流量切到新的机器上,即使新的conf文件生效。
好的,关于热部署的部分说完了,我们再说回来。
3 将旧的服务器根目录下的war包用cp命令放到一个专门备份的文件夹下
4 将新的war包同样用cp命令放到即将启动的Tomcat根目录下的webapps文件夹下,然后解压
5 执行sh bin/
start.sh
启动新的Tomcat6 检查该Tomcat是否启动成功,包括进程存在,tail -f
catalina.out
日志一直在打,api能够调通7 修改Nginx的conf文件
8 检查Nginx配置文件是否successful
9 更新Nginx配置,即**in/nginx -s reload
10 继续观察新Tomcat是否运行正常,如果不正常则立刻切回原Tomcat,本次自动更新失败
11 如果正常,则停止旧的Tomcat。
以上,自动化部署完成。
我是苏苏思量,来自BAT的Java开发工程师,每天分享科技类见闻,欢迎关注我,与我共同进步。
tomcat与nginx,apache的区别是什么
Tomcat与Nginx、Apache的关系如下图。由配送中心选择Apache、Nginx中的某一辆货车将包裹送给客户。虽然Apache、Nginx两辆车的用途是一样的,仔细区分它们两还是有区别的,比如:货物装载的速度、方式不一样,Apache有水箱可以直接运送活鱼而Nginx没有。
Tomcat有点像装活鱼的特殊包装。经过特殊包装打包的活鱼就可以通过Nginx和Apache运送到用户手中。另外,使用Tomcat包含了一种慢速的配送服务,所以配送中心一般都采用Nginx、Apache等配送。
通过上面的比方引申Apache、Nginx、Tomcat的实际用途
Apache全称Apache HTTP Server,它是Apache软件基金会的一个开放源码的网页伺服服务器软件。
Apache支持模块多,性能稳定。Apache本身是静态解析(静态页面),适合静态的HTML、图片等,但可以通过扩展脚本、模块来支持动态页面等。Apche可以支持PHP、CGI、Perl,但要使用Java就需要Tomcat,Java请求会通过Apache转发给Tomcat处理;
Nginx同样也是一款开源的HTTP Server,它是由俄罗斯人编写的轻量级HTTP服务。
Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器。Nginx本身不支持生成动态页面,很大部分Web服务器使用Nginx,主要通过Nginx的反向代理来实现负载均衡器。
Apache、Nginx本质上就是一种运用在HTTP服务器上某种应用程序,它们通过绑定服务器的IP地址并**某一个TCP端口来接收并处理HTTP请求,这样用户(一般通过IE、Chrome、Firefox等发送请求并显示内容)就能够通过HTTP协议来获取服务器上的网页(HTML+CSS样式)、文档(PDF、txt、rar等)、音频、视频等资源。如下图:
不仅Apache和Nginx,绝大多数编程语言所包含的类库中也可以实现简单的HTTP服务供开发者使用,如:Java HTTP Server、Python SimpleHTTPServer。
Apache和Nginx的对比
Nginx使用异步非阻塞型事件驱动的方法来处理请求,而Apache则是通过同步阻塞型的方法来处理请求。
Apache接收一个请求后,就会创建一个进程,每个进程内单线程。对于一个负载相对较高的网站来说,256的进程,也就是256个线程。线程处理请求时是同步阻塞模式,会一直等待该请求读取程序文件(IO)(同步),执行业务逻辑,返回给客户端,所有操作完成之后才能处理下一个请求(阻塞)。
如果服务器已经达到256的极限,那么接下去的访问就需要排队。这也就是为什么某些服务器负载不高的原因了。
而Ngnix接收一个请求后,不会等待这个请求的文件读取操作完成之后才接收下一个请求,它不会等待这个请求的后续的处理结果。而是会马上循环处理下一个请求(不阻塞)。请求的程序文件执行完成之后,会主动通知该线程,不用你主动去等待或者轮询查看(异步)。最后返回给客户端。
这样做,每个请求过来就不需要等待很长的时间排队,而是马上就能接收,开始进行处理了。等处理完成之后,会主动通知回调这个线程进行数据返回。
基于上述特性Nginx更轻量级,比Apache占用更少的内存及资源抗并发,Nginx静态处理性能比Apache高3倍以上。在高并发下Nginx能保持低资源低消耗高性能高度模块化的设计。但Apache组件比Nginx多,对PHP的支持比较简单,Apche的Rewrite也比Nginx强大一些。
Tomcat用于扩充Apache和Nginx的动态性能
从上面我们知道了Apache和Nginx的优势在于静态解析,那么动态解析就会交给其他模块处理,如Tomcat。
Tomcat是由Apache软件基金会旗下Jakarta项目开发的Servlet容器,实现对Servlet和JavaServer Page(jsp)的支持。Tomcat本身也包含了HTTP服务,也可单做独立的Web服务,但用的不多。
Tomcat一共设计了 4 种容器,它们分别为Engine、Host、Context、Wrapper,各个容器组件之间的关系是由大到小,即父子关系,它们之间关系形成一个树状的结构,它们的实现类都实现了 Container 接口。
总结
如果Apache、Nginx、Tomcat打一局LOL,Apache和Nginx像是冲在最前面的英雄。而Tomcat攻击性能弱,它主要负责打辅助,奶前面的英雄。
Nginx并发性好,CPU、内存占用低。但如果rewrite频繁,那还是选择Apache好一些,Apache在处理动态请求更有优势。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
tomcat的安装
搜索tomcat,进入官网
左边download是下载的意思,有tomcat7 tomcat8 tomcat9三个版本可供选择。我们选tomcat9
点击tomcat9,页面刷新以后,从
32-bit Windows zip (pgp, md5, sha1)
64-bit Windows zip (pgp, md5, sha1)
32-bit/64-bit Windows Service Installer (pgp, md5, sha1)
三个里面选一个,分别是32位压缩包,64位压缩包,32位安装包
下载完以后,解压出来
在bin目录里面找到startup.bat,双击运行
出来一个黑色窗口,几秒后,最后一行显示Catalina.start Server startup in 1078 ms,说明运行成功
在浏览器地址栏输入localhost:8080,页面是这样的,说明tomcat运行成功
更多文章:

m17xr5(有哪位大神能告诉我,如何开启m17xr5外星人3d屏幕的3d功能,显卡是gtx980m)
2024年1月25日 16:00

小米路由与华为路由器哪个好(华为路由器ws318增强版和小米路由器4c哪个好)
2025年2月7日 03:44

电脑慢的要死是什么原因(用了多年的电脑现在用起来很慢,这和什么硬件有关系呢办公用)
2024年3月1日 04:00

8800gs的显卡能玩3d的游戏么(8400G 的独立显卡 能不能玩3D游戏)
2023年8月8日 14:00

2021蓝牙耳机性价比(2021年618,从入门到精品,这6款真无线蓝牙耳机值得入手)
2023年8月30日 20:10

下载qq2012正式版(如何在手机上下载手机qq2012正式版的)
2024年9月30日 23:20

联想win7 32位系统下载(联想Y430可以装win7吗)
2024年11月21日 00:30