发表于: 2021-03-20 23:03:24

2 1255


今天完成的事情:

部署两台WEB,使用Nginx的Upstream来做负载。

jmeter压测


明天计划的事情:

解决报错信息,

解决吞吐量过慢的情况



遇到的问题:

jmeter出现卡死或内存溢出的解决方案



收获:



先启动Redis:


在来启动tomcat:


成功运行:



8080端口


9090端口:


把阿里云安全组设置了一遍,还是不行。在本地启动项目,发现项目有问题。我是直接把war包改名的,这样做不行。还有很多要改,改完成功运行之后。放到服务器上依旧报错,最后发现是自己直接创建了一个webapps文件夹,没有往里面加下面自带的文件夹,所以无法显示



再运行,成功:



==============
==============

nginx负载均衡:


参考网址https://juejin.cn/post/6844904082369413128


一、为什么进行负载均衡,原理及配置


1、什么是负载均衡?

通俗的讲就是客户端发送过来的请求,并不是直接请求目标服务器,而是有一个中转的代理服务器进行分发的。代理服务器会根据当前的服务器的使用情况和分发的规则,将请求转送到对应的负载均衡服务器上



2、负载均衡的好处:

2.1 将我们的项目部署到多台服务器上,如果其中某一台服务器宕机,并不会影响我们项目的正常运行,因为代理服务器是不会把请求转发到已经宕机的服务器上的


2.2高并发或者流量比较大的时候,可以通过负载均衡进行分流



3、负载均衡的分发方式(默认使用轮询)



nginx本身支持的四种方式:轮询(RR)、加权轮询(WRR)、ip_hash、least_conn

3.1轮询(Round-Robin,RR):默认情况下Nginx服务器实现负载均衡的算法就是轮询,轮询策略按照顺序选择组内服务器处理请求。


如果一个服务器在处理请求的过程中出现错误,请求会被顺次交给组内的下一个服务器进行处理,以此类推,直到返回正常的响应为止。但如果所有的组内服务器都出错,则返回最后一个服务器的处理结果。


例子:
upstream rr {
server 192.168.1.10;
server 192.168.1.20;
server 192.168.1.30;

}




3.2加权轮询(Weighted Round-Robin,WRR):为组内服务器设置权重,权重值高的服务器被优先用于处理请求。此时组内服务器的选择策略为加权轮询。组内所有服务器的权重默认设置为1,即采用轮询处理请求。 例子:


upstream wrr {
server 192.168.1.10 weight=3;
server 192.168.1.20 weight=2;
server 192.168.1.30 weight=1;

}




3.3 ip_hash:ip_hash用于实现会话保持功能,将某个客户端的多次请求定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话。只有当服务器处于无效(down)的状态时,客户端请求才会被下一个服务器接收和处理。注意:使用ip_hash后不能使用weightip_hash和主要根据客户端IP地址分配服务器,因此在整个系统中,Nginx服务器应该是处于最前端的服务器,这样才可以获取到客户端IP地址,否则它得到的IP地址将是位于它前面的服务器地址,从而就会产生问题。

例子:


upstream iphash {
ip_hash;
server 192.168.1.10;
server 192.168.1.20;
server 192.168.1.30;

}




3.4 least_conn:lease_conn用于为网络连接分配服务器组内的服务器,在功能上实现了最小连接数负载均衡算法,在选择组内的服务器时,考虑各服务器权重的同时,每次选择的都是当前网络连接最少的那台服务器,如果这样的服务器有多台,就采用加权轮询选择权重值大的服务器。



例子:



upstream leastconn {
least_conn;
server 192.168.1.10 weight=3;
server 192.168.1.20 weight=2;
server 192.168.1.30 weight=1;

}



==================
==================


这里利用了长连接提升性能


注意:如果没有添加长连接,在压力测试(以下简称压测)环境中,可能会出现这样的情景:当压测达到一定的 QPS( Query Per Second,每秒查询率)后, Nginx服务器突然“卡死”, QPS直接降到几乎为 0,但是压测并没有停;几分钟后又会自动恢复,然后再压测一段时间后, QPS又会突然降到接近于 0。这种情况就要考虑是不是 timewait的状态过多了。




=================

=================

启动nginx


jemeter测试:

线程100,循环10

非常慢,而且还出现错误了



通过观看日志发现,代码的所耗费的时间很快   前端页面js,css所花费的时间很长 我压测需要把 js,css干扰去除



报错信息:





返回列表 返回列表
评论

    分享到