Nginx 实现负载均衡,使用Jmeter进行测试

1.准备工作。

结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。

1.1 关于Linux系统安装Nginx可以参考我的文章

1.2 由于只是测试,SpringBoot只是映射了根路径,端口分别是10001和10002,分别返回demo1和demo2字符串作为区分。

2.Nginx负载均衡的集中方式介绍

2.1 轮询

轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮询7071、7072、888三个服务

upstream mukeUpServerUp {
	server 127.0.0.1:7071;
	server 127.0.0.1:8888;
	server 127.0.0.1:7072;
	}

2.2权重

指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后7071、8888服务的访问比率会是7072服务的二倍。

upstream mukeUpServerUp {
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.3 iphash

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。

upstream mukeUpServerUp {
 	ip_hash;
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.4 最少连接

将请求分配到连接数最少的服务上。

upstream mukeUpServerUp {
 	least_conn;
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.5 fair

upstream mukeUpServerUp {
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	fair;  
	}

3.Nginx配置

代理配置

location /v2/muke/ {
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_connect_timeout   300000;
	proxy_send_timeout      600000;
	proxy_read_timeout      600000;
	proxy_pass http://mukeUpServerUp/v2/muke/;
	}

负载配置

upstream mukeUpServerUp {
    least_conn;
    server 127.0.0.1:7071 weight=2;
    server 127.0.0.1:8888 weight=2;
    server 127.0.0.1:7072 weight=1;
    }

测试

查看一下进程在这里插入图片描述

top -p 2228,2291,2344

查看静止进程情况在这里插入图片描述
使用Apache Jmeter 进行测试下
在这里插入图片描述
1000线程,循环三次
在这里插入图片描述
处于nginx访问监听
在这里插入图片描述
三个进程都有使用,说明配置成功了。
在这里插入图片描述
看一下接口最终的接口使用情况,由于本地代理的问题,错误率比较高。正常情况下是不会的

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值