网站首页 > 技术教程 正文
用 Spring Boot 搭建完 Spring Cloud 微服务项目后,又用 Nginx 为 Spring Gateway 做了负载均衡,其中做了并发限制和每秒连接数限制,Nginx 的配置如下:
worker_processes 1;
events {
worker_connections 1024;
}
?
http {
include mime.types;
default_type application/octet-stream;
?
sendfile on;
?
keepalive_timeout 65;
?
gzip on;
# 开启令牌桶 - 每秒新增 100 个令牌
limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;
# 开启每个 IP 的并发设置
limit_conn_zone $binary_remote_addr zone=perip:10m;
# 开启服务器的总并发设置
limit_conn_zone $server_name zone=perserver:10m;
# 定义当服务器由于被限制或缓存时,配置写入日志
limit_conn_log_level error;
?
## 配置 Spring Cloud Gateway 测试
# 负载均衡
upstream renda {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
}
server {
listen 80;
server_name www.springcloudgateway.com;
# 限制每个 IP 的并发数
limit_conn perip 10;
# 限制并发连接数
limit_conn perserver 200;
# 限制总令牌数,令牌发完后,多出来的请求就会返回 503
limit_req zone=req_one burst=500 nodelay;
location / {
proxy_pass http://renda;
index index.html index.htm;
}
}
?
}
然后,我使用 Postman 的压力测试 Collection Runner 对配置进行并发测试,选择了 Delay 为 0,Iterations 为 20,对 www.springcloudgateway.com 发起 GET 请求。
然而,Postman 竟然全部测试用例通过了,但是我明明在 Nginx 中限制了每个 IP 的并发数 最多为 10 呀。怎么会与预测不符合呢?
接着,我调大了 Postman 的 Iterations 为 1000,这时候我发现,它是串行执行的;Postman 的 Delay 为 0 不能保证所有请求真的可以同时发起。
于是,我换了测试工具,使用 Jmeter 进行压力测试。
打开 Jmeter,先创建一个 Thread Group,然后创建一个 HTTP Request 和 View Results Tree;在 Thread Group 中设置 Number of Threads 为 20,Ramp-up period 设置为 0;同样地,对 www.springcloudgateway.com 发起 GET 请求。
这时候,一共 10 个测试用例通过了,10 个没有通过,而且测试用例发起得时间都一样,精确到毫秒,符合预测结果。
之后再使用 Jmeter 进行每秒连接数测试,发现也符合预测。
由此可见,Jmeter 虽然配置比较多,但是比 Postman 要可靠一些。
想了解更多,欢迎关注我的微信公众号:Renda_Zhang
猜你喜欢
- 2024-10-13 Nginx 多进程高并发、低时延、高可靠机制在滴滴缓存代理中的应用
- 2024-10-13 linux的TCP连接数量不能超过65535个,如何应对千万的并发的?
- 2024-10-13 Nginx实现高速并发处理的原理详解
- 2024-10-13 Java开发大型互联网企业高并发限流特技
- 2024-10-13 高并发下的Nginx限流实战(nginx并发能力是多少)
- 2024-10-13 nginx——控制 Nginx 并发连接数(nginx 并发限流)
- 2024-10-13 Nginx(七) 测试使CPU占用更多能否提升并发数
- 2024-10-13 Nginx凭啥子并发数可以达到3w!(nginx的并发量)
- 2024-10-13 nginx负载均衡-提升服务的并发能力
- 2024-09-28 服务器能承载3000人但来5000人!服务器宕机了!如何救
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)