23.JavaWeb-集群+Nginx+JMeter

1.集群概念

        平时用的服务是的并发量是有限的,像tomcat只有不到500的并发量,不能满足高并发的需求,因此就采用了集群的方法,用多个服务器

        当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器,系统无法自动决定用户的请求具体交给哪台服务器解决,因此要用到一个代理服务器-nginx

2.nginx

        Nginx (engine x) 是一个高性能、轻量级、占有内存少、并发能力强的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

2.1 代理服务器

        代理服务器是一种位于客户端和目标服务器之间的中间服务器。它充当客户端和目标服务器之间的中转,接收客户端发送的请求,并将其转发给目标服务器

2.1.1 正向代理

        正向代理(Forward Proxy)是一种代理服务器的部署模式,它代表客户端向目标服务器发起请求,并将目标服务器返回的响应返回给客户端。在正向代理模式下,客户端明确知道它正在与代理服务器进行通信。

        知道请求被哪个服务器处理,但是无法直接访问该服务器,需要借助代理服务器

2.1.2 反向代理

        反向代理(Reverse Proxy)是一种代理服务器的部署模式,它将客户端的请求转发给多个目标服务器,并将目标服务器返回的响应返回给客户端。与正向代理不同,客户端并不知道它正在与目标服务器直接通信,而是与反向代理服务器进行通信。

2.2 使用nginx

2.2.1 下载nginx

nginx: downloadhttp://nginx.org/en/download.html

2.2.2 启动nginx

        start nginx

 2.2.3 配置nginx.conf文件

worker_processes  1;  # 工作进程数,一般设置为服务器CPU核心数

events {
    worker_connections  1024;  # 每个工作进程的最大连接数
}

http {
    include       mime.types;  # 包含MIME类型配置文件
    default_type  application/octet-stream;  # 默认的MIME类型

    sendfile        on;  # 开启文件传输功能
    keepalive_timeout  65;  # 长连接超时时间

    server {
        listen       80;  # 监听端口号
        server_name  localhost;  # 服务器名称

        location / {
            proxy_pass http://balance;  # 反向代理到名为"balance"的上游服务器集群
        }

        error_page   500 502 503 504  /50x.html;  # 定义错误页面
        location = /50x.html {
            root   html;  # 错误页面的根目录
        }
    }

    upstream balance{
        server 127.0.0.1:9090;  # 上游服务器1的地址和端口
        server 127.0.0.1:9091;  # 上游服务器2的地址和端口
    }
}

         前端发送请求的目标端口要改成80,这是ngnix代理服务器的默认端口

nginx -s reload重启nginx
nginx -s stop关闭nginx
start nginx启动nginx

2.3 负载均衡策略

        在负载均衡中,有多种策略可供选择,用于决定将客户端请求分发给哪个后端服务器

负载均衡策略描述适用场景
轮询(Round Robin)按照服务器列表顺序逐个将请求分发给后端服务器服务器性能相近的场景
IP哈希(IP Hash)根据客户端的IP地址计算哈希值,将相同IP的请求分发给同一台后端服务器保持会话的场景
最少连接(Least Connections)将请求发送到当前连接数最少的服务器,实现负载均衡后端服务器性能不均衡的场景
加权轮询(Weighted Round Robin)根据服务器权重进行轮询分发,权重高的服务器获得更多请求服务器性能不均衡的场景
加权最少连接(Weighted Least Connections)将请求发送到当前连接数最少且权重高的服务器服务器性能不均衡的场景
URL hash根据请求的 URL 的 hash 值来分配服务器。该算法的特点是,相同 URL 的请求会分配给固定的服务器,当存在缓存的时候,效率一般较高。然而 Nginx 默认不支持这种负载均衡算法,需要依赖第三方库。

3.JMeter

        JMeter是一款功能强大的开源性能测试工具,用于测试Web应用程序的性能和负载。它可以模拟多个用户同时访问目标应用程序,并收集性能指标和结果,以评估应用程序在不同负载条件下的性能表现。

Apache JMeter - Download Apache JMeterhttps://jmeter.apache.org/download_jmeter.cgi        解压后,进入bin目录,使用jmeter.bat启动程序

3.1 创建线程组

3.2 配置请求

        配置需要进行测试的程序协议、地址、请求方式、请求路径和端口

3.3  添加请求头中的token

        然后就可以运行了

 

本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值