赞
踩
国内镜像地址:https://repo.huaweicloud.com/java/jdk/11.0.2+9/jdk-11.0.2_osx-x64_bin.dmg
下载dmg后,双击进行安装。
配置环境变量:
# 1 打开环境变量配置文件
open ~/.bash_profile
# 2 在最后一行插入
export JAVA_11_HOME=`/usr/libexec/java_home -v 11`
export JAVA_HOME=$JAVA_11_HOME
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
# 3 刷新配置文件
source ~/.bash_profile
# 4 查看配置是否生效
java -version
①官网下载安装包:https://jmeter.apache.org/download_jmeter.cgi
②下载完成后,直接解压
bin:Jmeter可执行文件
docs:包含用户指南等文档。
extras:包含各种使用样例。
lib:该目录包含 Jmeter 所需的 JAR 包(也可以添加其他的 JAR 包)。
printable_docs:里面是一些可打印的文件。
③启动Jmeter
进入bin目录,执行sh jmeter
插件地址:https://jmeter-plugins.org/wiki/Start/
Jmeter默认的图表比较简单。大家可根据需要自行安装插件。
以安装TPS插件为例:
- 来到官网,搜索插件名,点击
- 点击Download
3. 点击版本号,进行下载
下载后,我们解压后放到jmeter的安装目录的相同位置,如:
- lib目录下的就放到apache-jmeter-3.0\lib下
- ext下的就放到apache-jmeter-3.0\lib\ext\ 下,
- 重新启动Jmeter。
详情用法参考:https://editor.csdn.net/md/?articleId=127047200
步骤:创建测试计划-创建线程组(设置并发数)- 创建HTTP请求
观测结果:
思路:
- docker启nginx,nginx配置:
server_name ziyi.com
,当拦截ziyi.com服务并转发给(本地8888和9999两个服务):
server docker.for.mac.host.internal:8888;
server docker.for.mac.host.internal:9999;- 本地配置域名解析:sudo vim /etc/hosts。添加解析记录:
127.0.0.1 ziyi.com- docker启动nginx
- 启动两个iris web服务,分别为8888和9999端口
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker
systemctl start docker
以mac版本为例:因为nginx是在mac版的docker上跑的,所以可以通过
docker.for.mac.host.internal
指向我mac宿主机,保证nginx转发请求到宿主机(mac),实现负载均衡。
- 大家也可以通过create docker网络实现docker中的nginx转发到宿主机
user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; 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 /var/log/nginx/access.log main; upstream backend_consume { # mac下的docker有加一层虚拟机,所以无法直接访问,需要使用docker.for.mac.host.internal server docker.for.mac.host.internal:8888 weight=1; server docker.for.mac.host.internal:9999 weight=1; # server 127.0.0.1:8888; # 第一个服务 # server 127.0.0.1:9999; # 第二个服务 # 如果要实现更高级的负载均衡策略,比如轮询、权重等,可以在这里添加相应配置 # 比如: # least_conn; # 最小连接数分配 # ip_hash; # 根据客户端IP进行哈希一致性分配 } server { listen 80; server_name ziyi.com; location / { proxy_pass http://backend_consume/consume; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; } } }
docker run -d \
--name nginx \
-v /Users/ziyi2/docker-home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/ziyi2/docker-home/nginx:/var/log/nginx \
-p 80:80 nginx
svc1:
package main import ( "github.com/kataras/iris/v12" context2 "github.com/kataras/iris/v12/context" ) func main() { app := iris.New() app.Get("/consume", func(c *context2.Context) { c.JSON("ok port:8888") }) app.Use(Cors) app.Listen(":8888", nil) } func Cors(ctx iris.Context) { ctx.Header("Access-Control-Allow-Origin", "*") ctx.Header("Access-Control-Allow-Credentials", "true") ctx.Next() }
svc2:
package main import ( "github.com/kataras/iris/v12" context2 "github.com/kataras/iris/v12/context" ) func main() { app := iris.New() app.Get("/consume", func(c *context2.Context) { c.JSON("ok port:9999") }) app.Use(Cors) app.Listen(":9999", nil) } func Cors(ctx iris.Context) { ctx.Header("Access-Control-Allow-Origin", "*") ctx.Header("Access-Control-Allow-Credentials", "true") ctx.Next() }
配置20个并发:
新建请求,填写域名及路径:
后台打印日志,应该是8888一次、9999一次,出现负载均衡,交替打印
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。