高并发开始时,nginx代理的多个tomcat只有一个在跑,后面tomcat才都开始跑

jmeter测试高并发情况下:
高并发开始时,nginx代理的多个tomcat只有一个在跑,这段时间疯狂报错。
后面所有的tomcat才都开始跑,报错也明显减少。

这个一开始只有一个tomcat在跑的问题要怎么解决,让所有tomcat都能够
处理高并发情况。

1个回答

你应该一开始就启动多个tomcat。把需要的都启动起来,然后让Nginx做他们的反向代理

qq_21730637
永远的初学者 一开始tomcat就都开启了,测试开始时,就一个tomcat在跑,其他的都SB停住了,就是这个问题
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

大佬指点:Nginx可以接收几万的并发,但是tomcat最多只能承受几百,那么当Nginx接收上万并发后,如何将请求转发给tomcat的??tomcat就算用集群也无法承载这么多的并发啊??

大佬指点:Nginx可以接收几万的并发,但是tomcat最多只能承受几百,那么当Nginx接收上万并发后,如何将请求转发给tomcat的??tomcat就算用集群也无法承载这么多的并发啊??

Nginx 配置之后在电脑上的并发访问量比直接使用tomcat的并发访问量低

Nginx 配置之后在电脑上的并发访问量比直接使用tomcat的并发访问量低是什么原因??怎样解决??

3个tomcat通过Ng做负载均衡,如果把3个 tomcat的内存资源都给这一个tomcat,这样可以不?

分布试布署3个tomcat,3个tomcat通过Ng做负载均衡,如果只布署一个tomcat,只是把3个 tomcat的内存资源都给这一个tomcat,这样可以不? 因为3个tomcat事先都已经启动了的,如果一个tomcat报错了,访问会跳到另一个tomcat,这时也会把另外一个tomcat也会报错;如果只布署一个tomcat的话,内存资源都给这一个tomcat,这样应该就不会报错了 分布试布署3个tomcat,和只布署一个tomcat区别?

NGINX要发挥作用,实现负载均衡至少需要几台服务器呢?

1.NGINX要发挥作用,实现负载均衡至少需要几台服务器呢?(是三台吗?一台安装NGINX,其余两台分别部署Tomcat,启动web项目?然后由NGINX进行负载均衡反向代理吗?)(或者是两台吗?NGINX可以与其中一台Tomcat服务器共用一个主机?) 2.一台服务器上有安装NGINX的必要吗?(虽说一台机器NGINX可以分布式不同的Tomcat,但是我只有一个web项目呢?并没有多个网站) 3.当并发量高于多少的时候直接访问Tomcat和通过访问NGINX反向代理才能看出差距呢?(也就是说,当并发量高于多少才有必要使用NGINX) 4.一台高配性能的服务器,通过Tomcat部署项目,然后由Tomcat直接访问项目和两台半高配性能服务器(合起来相当于一台高配)使用了NGINX反向代理,负载均衡相比,那个稳定性更好,效果更好。

用nginx作为文件服务,并发拉去较大文件造成服务器带宽跑满

用nginx作为文件服务,并发拉去较大文件造成服务器带宽跑满 我们的产品是做应用分发的,被分发的应用下载过于频繁会造成, 服务器带宽跑满,nginx有什么办法可以优化这个问题, 前题要尽量不要影响下载速度。

redis+tomcat+nginx实现负载均衡,session共享

求个教程,最好视频,网上方法有毒,要么少东西(部分代码,网上还找不到),要么是不对的,配完之后时不行的。 找了很多视频,没有具体讲redis实现session共享部分的。求大神分享,要么给我个文档,有操作步骤的。有悬赏!!!!来个windows环境下的配置方法。

nginx并发低,每秒请求只能达到几百

- linux:centos7 - cpu:16核 - openssl:1.1.1 - nginx:1.15.9 > 测试 >+ 使用ab测试http接口在800~1600之间,很不稳定 >+ 测试https接口在400~600之间,也不是很稳定 sysctl.conf ``` vm.max_map_count=655360 #关闭ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 #决定检查过期多久邻居条目 net.ipv4.neigh.default.gc_stale_time=120 #使用arp_announce / arp_ignore解决ARP映射问题 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击 net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护 net.ipv4.icmp_ignore_bogus_error_responses = 1 #处理无源路由的包 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 #core文件名中添加pid作为扩展名 kernel.core_uses_pid = 1 # 开启SYN洪水攻击保护 net.ipv4.tcp_syncookies = 0 #修改消息队列长度 kernel.msgmnb = 65536 kernel.msgmax = 65536 #timewait的数量,默认180000 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.somaxconn = 50000 #限制仅仅是为了防止简单的DoS 攻击 net.ipv4.tcp_max_orphans = 3276800 #未收到客户端确认信息的连接请求的最大值 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 #内核放弃建立连接之前发送SYNACK 包的数量 net.ipv4.tcp_synack_retries = 1 #内核放弃建立连接之前发送SYN 包的数量 net.ipv4.tcp_syn_retries = 1 #启用timewait 快速回收 net.ipv4.tcp_tw_recycle = 1 #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout = 1 ``` nignx ``` user root; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; worker_rlimit_nofile 65535; events { use epoll; worker_connections 102400; multi_accept on; } http { include mime.types; default_type application/octet-stream; client_max_body_size 10000m; #10000m #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; access_log off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 0; #keepalive_timeout 60; #gzip on; gzip on; gzip_min_length 1k; gzip_comp_level 6; gzip_types application/json text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/png image/jpeg image/jpg image/gif; gzip_disable "MSIE [1-6]\."; gzip_vary off; gzip_buffers 4 32k; charset utf-8; #client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 75; proxy_send_timeout 75; proxy_read_timeout 75; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /usr/local/nginx/proxy_temp 1 2; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-PORT $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for; client_header_buffer_size 16k; large_client_header_buffers 4 128k; server_tokens off; reset_timedout_connection on; open_file_cache max=102400 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 1; upstream tomcat{ server 192.168.2.176:8080 weight=1; server 192.168.2.176:8079 weight=1; server 192.168.2.182:8079 weight=2; server 192.168.2.182:8080 weight=2; #ip_hash; } server { listen 80; server_name xxx3; location ~ /(commonjs|commoncss)/ { # proxy_pass http://192.168.2.176:8079/ecommerce/backStage/$request_uri; root /home/yida/shopping/ecommerce/backStage/; } location / { # proxy_pass http://192.168.2.176:8079/ecommerce/backStage/operate/; root /home/yida/shopping/ecommerce/backStage/operate/; index login.html index.html index.htm; } } server { listen 80; server_name xxx2; location ~ /(commonjs|commoncss)/ { root /home/yida/shopping/ecommerce/backStage/; } location /tomcat/{ proxy_pass http://appback-shopping/appback-shopping/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { root /home/yida/shopping/ecommerce/backStage/store/; index login.html; } } server { listen 443 ssl http2; server_name xxxx; #ssl on; ssl_certificate /usr/local/nginx/cert/dianshang.pem; ssl_certificate_key /usr/local/nginx/cert/dianshang.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:20m; ssl_session_timeout 20m; keepalive_timeout 60s; keepalive_requests 100; ssl_early_data on; brotli on; brotli_comp_level 6; brotli_min_length 1k; brotli_types text/plain text/css text/xml text/javascript text/x-component application/json application/javascript application/x-javascript application/xml application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype; #charset koi8-r; #access_log logs/host.access.log main; location ~ /test.*(js|css|index)/ { # proxy_pass http://192.168.2.176:8079/ecommerce/$request_uri; root /home/yida/shopping/ecommerce/; } location ~ /(js|css)/ { expires 3d; # proxy_pass http://192.168.2.176:8079/ecommerce/app/$request_uri; root /home/yida/shopping/ecommerce/app/; access_log off; } location /tomcat{ #limit_req zone=ip_limit burst=8 nodelay; #limit_req_status 555; proxy_pass http://tomcat/root; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #limit_conn one 10; client_max_body_size 20; client_body_buffer_size 256k; proxy_connect_timeout 1; proxy_send_timeout 30; proxy_read_timeout 60; proxy_buffer_size 256k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; proxy_max_temp_file_size 128m; } location / { root /home/yida/shopping/ecommerce/app/; # proxy_pass http://192.168.2.176:8079/ecommerce/app/; # index index.html index.htm; # client_max_body_size 50m; # client_body_buffer_size 256k; # proxy_send_timeout 30; # proxy_read_timeout 60; # proxy_buffer_size 256k; # proxy_buffers 4 256k; # proxy_busy_buffers_size 256k; # proxy_temp_file_write_size 256k; # proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; # proxy_max_temp_file_size 128m; } ``` nginx.conf里面配置了很多server ab -n 1000 -c 1000 http://xxxx/index.html ``` Concurrency Level: 1000 Time taken for tests: 1.130 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 2738000 bytes HTML transferred: 2496000 bytes Requests per second: 885.16 [#/sec] (mean) Time per request: 1129.741 [ms] (mean) Time per request: 1.130 [ms] (mean, across all concurrent requests) Transfer rate: 2366.76 [Kbytes/sec] received ``` ab -n 1000 -c 1000 https://xxx.com/index.html ``` Concurrency Level: 1000 Time taken for tests: 2.117 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 4368000 bytes HTML transferred: 4125000 bytes Requests per second: 472.28 [#/sec] (mean) Time per request: 2117.375 [ms] (mean) Time per request: 2.117 [ms] (mean, across all concurrent requests) Transfer rate: 2014.58 [Kbytes/sec] received ```

并发数到达一个点后,再往上多一点点就不断报错

使用spring session基于redis实现session共享后,nginx+redis+两个tomcat 能够成功session共享,但是,用jmeter做并发测试,1秒建立500用户访问测试服务器上的项目登录并发,不会报错。一旦到了510,报错量剧增。nginx和tomcat还有数据库的参数设置都没问题,那么还有什么地方可能存在问题,使的并发数卡在1秒500用户而上不去呢?

高并发报打开文件数过多

遇到一个关于高并发的难点?项目框架和服务架构(Spring mvc+mybatis+阿里数据连接池+软负载软件nginx+缓存服务器memcached)2台Linux服务器(双核、16G内存),每台各两个tomcat(相当于4个节点服务)。数据库最大连接数300。没个tomcat连接数设置为1200。root用户启动服务的,结果在并发下 直接报打开文件数过多,一直没想明白。求解

这样的系统 该如何去重新架构

应用服务器: 一台服务器A tomcat6.35 部署生产系统D 一台服务器B tomcat6.35 部署运营系统Y 数据库服务器 一台服务器C 部署了oracle实体和mysql实体分别对应 生产系统和运营系统 以上服务器均在一个局域网内。 主要过程: 1.生产系统D 白天因为要收集生产数据,会有很高的写,具体并发数没测试过 2.现在每天18点 ,生产系统会抽一批数据利用shell脚本传递给B,然后系统B解析入库,然后经过mysql简单的存储过程处理 3.每天凌晨1点,生产系统D会将全部的生产数据从oracle中抽成txt文件,上传FTP,运营系统会从FTP上获取txt,然后解析入库,最后mysql 会经过好几个复杂的存储过程经行预处理。 整个过程到早晨8点 会完成。 面临的问题: 1。 在现有业务环境下(一天数据量是15W),这些都满足,没有问题。唯一出问题,是当初因为生产工具出错,一天系统D收到160W的数据,造成数据库服务器cpu80%的负载,导致凌晨1点的抽数据一直抽到8点。 2.最近两个月业务大发展,现有的系统无法满足,但是分阶段,8月底--->9月底--->10月初,估计8月底 现有的这个架构(姑且称之为架构)在稍微处理下好可以满足,然后在9月底,会有一个100W左右的量,然后到10月初估计会到200W (这里都是指一天) 所以3个主要过程都会崩溃。 暂时的想法: 1.在1过程中,在8月底考虑nginx加 tomcat负载均衡,然后数据进队列,提高并发,然后多线程的入库oracle。最后在9月份的时候 考虑分布式集群。 2. 对于生产系统,将几项生产数据,昨天以前的历史数据归档,只保留当天的数据,加快查询速度。 3,对于现有数据库,先做读写分离,最后做集群。 但是现在的问题是,一个用的是oracle ,一个用的是mysql,oracle服务器面临的是大量的高并发的写。主要过程2 3抽数据在数据量大后效率很低。 所以 有这么几个方案: 1.生产系统从oracle 一步步转到mysql,然后做mysql的读写分离。 2.还是继续使用oracle+mysql,但是每天定时抽取数据的方式得做更改,比如,每隔一小时从oracle 吐到mysql,而且oracle转mysql 写一个简单的中间件(或者有什么成熟的工具),直接进行表与表之间的数据同步。 因为见识所限,所以请各位帮忙,看下,这样的系统该怎么去优化。 当然,钱是主要问题,如果跟 阿狸或者企鹅一样有钱,直接各种砸服务器堆硬件(有点 单反里的器材党的感觉),因为是小公司,所以考虑到新服务器不能一步到位的情况下,分阶段的该怎么走。。。

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

C++语言基础视频教程

C++语言基础视频教程

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

Python数据分析与挖掘

Python数据分析与挖掘

微信小程序开发实战之番茄时钟开发

微信小程序开发实战之番茄时钟开发

软件测试2小时入门

软件测试2小时入门

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问
相关内容推荐