zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

服务器集群自动化部署工具,自动生成 Redis+Tomcat+Nginx相关需要文件,自动配置好依赖jar包和配置文件,简单快速搭建集群环境

2023-09-11 14:22:07 时间

服务器集群是所有企业都采用的方式,简单的说,采用单一的Tomcat服务器部署应用,一是存在单点故障导致整个系统停止运行,而是并发量远不能满足现实需要,三是无法进行应用热更新等一系列问题。目前,采用简单一点服务器集群,可以使用 Redis+Tomcat+Nginx 达到目的,使得应用服务更有健壮性和可维护性。

为了解决频繁的服务器软件的配置问题,jar依赖问题,配置文件修改等,这儿有一款自动化生成软件,只需要简单的点击和输入参数,就可以生成相关的文件,之后把所有的文件放到服务器上启动即可。

软件下载地址:文章结尾处。


1、软件下载完成后,启动界面。
在这里插入图片描述

2、设置文件的保存路径,其它可默认,最下面添加不同的 Tomcat服务器地址,这里添加 3 个举例,8080、8070、8060。
在这里插入图片描述

3、点击生成配置,最后在选择的路径文件夹中得到下面的相关文件,相关配置文件的端口、IP、密码等等都配置好了,感觉蛮智能的。
复制所有的文件夹到服务器上的某个目录,或者压缩之后上传到服务器进行解压。
在这里插入图片描述
4、依次启动 Redis——》Tomcat——》Nginx;
开始之前,务必确保 JDK1.8及以上版本,安装无误,java环境配置正常;
在Redis文件夹中,找到 redis-server.exe ,双击启动;
在每个Tomcat文件夹中的 bin 目录,找到 startup.bat ,双击启动;
在Nginx文件夹中,找到 nginx.exe ,双击启动,这个地方窗口是一闪而过,没错,就是这个效果。

5、在浏览器输入Nginx 的监听端口,默认 80 ,可以不用输入,直接 输入 localhost 就行。
在这里插入图片描述

6、点击浏览器上面的刷新。
在这里插入图片描述
7、点击浏览器上面的刷新。
在这里插入图片描述

8、可以看到 Nginx 根据负载均衡策略,会把每个请求转发到不同的服务器上面。

9、再看 session ID 一直没变过,保证用户登录之后,进行一次会话请求之后,后面的每次会话请求都是相同的 session。

10、简单应用举例,停掉其中一个Tomcat,发现还是可以刷新访问,只是会在正常的服务器之间进行负载均衡。此时,对停掉的服务器进行应用重新部署,然后启动,再次刷新访问,会是什么效果呢?留给那些有兴趣的人给答案。


软件下载地址:

https://download.csdn.net/download/u014374009/11611177

点击下载


相关概念:

Tomcat的性能与最大并发数:当一个进程有500个线程在跑的话,那性能已经是很低很低了。Tomcat默认配置的最大请求数是150,也就是说同时支持150个并发,当然了,也可以将其改大。
当某个应用拥有250个以上并发的时候,应考虑应用服务器的集群。

具体能承载多少并发,需要看硬件的配置,CPU越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。

操作系统对于进程中的线程数有一定的限制:

Windows每个进程中的线程数不允许超过2000

Linux每个进程中的线程数不允许超过1000

另外,在Java中每开启一个线程需要耗用1MB的JVM内存空间用于作为线程栈之用。

Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。

Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于Tomcat来说几乎没有BUG存在了。

Tomcat还可以配置NIO方式的Socket通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。

这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能也是非常高的。

对于单台数据库服务器来说,允许客户端的连接数量是有限制的。

并发能力问题涉及整个系统架构和业务逻辑。

系统环境不同,Tomcat版本不同、JDK版本不同、以及修改的设定参数不同。并发量的差异还是满大的。本软件属于免费试用版,针对Windows服务器环境免费,针对Linux服务器环境不开放。

maxThreads=“1000” 最大并发数

minSpareThreads=“100”///初始化时创建的线程数

maxSpareThreads=“500”///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

acceptCount=“700”// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

如何提高Web服务器的并发连接处理能力?

大概有几个基本条件:
基于线程,即一个进程生成多个线程,每个线程响应用户的每个请求。
基于事件的模型,一个进程处理多个请求,并且通过epoll机制来通知用户请求完成。
基于磁盘的AIO(异步I/O)
支持mmap内存映射,mmap传统的web服务器,进行页面输入时,都是将磁盘的页面先输入到内核缓存中,再由内核缓存中复制一份到web服务 器上,mmap机制就是让内核缓存与磁盘进行映射,web服务器,直接复制页面内容即可。不需要先把磁盘的上的页面先输入到内核缓存去。
Nginx 采用的是多进程(单线程) + 多路IO复用模型,就成了”并发事件驱动“的服务器。

Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。
接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。
master 进程能监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动启动新的 worker 进程
worker 进程数,一般会设置成机器 cpu 核数。因为更多的worker 数,只会导致进程相互竞争 cpu,从而带来不必要的上下文切换。

【总结】: 使用多进程模式,不仅能提高并发率,而且进程之间相互独立,一个 worker 进程挂了不会影响到其他 worker 进程。