apisix网关、JMeter压测 —— k8s从入门到高并发系列教程 (八)

        前面内容的学习,我们已经能够把merge到master分支的内容自动打包成docker镜像并基于k8s环境部署到线上。然而微服务之间的互相访问,开放的是clusterIp层度的service,面向外部的大流量的网络请求,我们需要一个api网关——apisix因其卓越的性能成为国内互联网公司的首选。

apisix安装

加载apisix资源

helm repo add apisix https://charts.apiseven.com
helm repo update

安装apisix

helm install apisix apisix/apisix --create-namespace --namespace apisix

输入以下命令可以看到apisix的80端口在机器节点层面暴露给我们的端口号

kubectl get --namespace apisix -o jsonpath="{.spec.ports[0].nodePort}" services apisix-gateway

我的端口号是 31093

安装apisix的界面管理工具 apisix-dashboard

helm install apisix-dashboard apisix/apisix-dashboard --create-namespace --namespace apisix

由于apisix-dashboard的端口未对外部开放,通过以下命令暂时开放端口给外部访问

# 拿到apisix-dashboard的pod
export POD_NAME=$(kubectl get pods --namespace apisix -l "app.kubernetes.io/name=apisix-dashboard,app.kubernetes.io/instance=apisix-dashboard" -o jsonpath="{.items[0].metadata.name}")

# 拿到apisix-dashboard的pod端口
export CONTAINER_PORT=$(kubectl get pod --namespace apisix $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")

# 开放apisix-dashboard pod的内部端口到 外部的8080端口
kubectl --namespace apisix port-forward $POD_NAME 8080:$CONTAINER_PORT

输入 http://127.0.0.1:8080/user/login?redirect=/ 可以打开apisix-dashboard的登陆界面,

用户名 admin 密码 admin

配置上游服务:

名称 test-api-upstram

上游类型 节点

目标节点 主机 test-api.test-project1.svc.cluster.local 端口 80

配置路由

名称 test-api

域名 test-api.mustafa.com

选择上游服务 test-api-upstram

我们可以输入http://test-api.mustafa.com:31093 访问我们前面内容学习制作、自动部署出来的那个demo了

这样的demo能不能开放出来给用户使用?我们先来压测一下吧!

JMeter压测

线程组

添加->线程->线程组

线程数 5

ramp-up时间 10

循环次数 20

http请求默认值

线程组->添加->配置原件->Http请求默认值

协议 http

服务器名称或ip test-api.mustafa.com

端口号 31093

HTTP请求

线程组->添加->取样器->Http请求

请求方式 GET

路径 /tclient/

响应断言

线程组->添加->断言->响应断言

测试字段 响应文本

字符串 haha

监听器

线程组->添加->监听器

图形结果

查看结果数

聚合报告

点击运行按钮,等待程序执行结果,我的执行结果如下

        从这张压力测试结果的图片来看,接口响应时间分布非常不均匀(最小3,最大5017,中位数5004),接口请求失败率较高(55%) 

        查看结果树,失败的请求通常长这样,就是这样的请求拖累了接口响应时间的

        如果线上环境果真这样,那还不完完?如何找出原因,做出针对性的优化?我困了,请听下回分解

 相关链接

手把手教你部署nginx+php

php和nginx镜像合并 && 代码打包到镜像 

nginx-php镜像安装常用软件 

yaf && yar微服务/hprose微服务 镜像初始化 

常用开发工具:php_codesniffer代码规范检查&修复、phpstan语法检查、phpunit单元测试 

.gitlab-ci.yaml自动镜像打包&&互联网企业规范化上线流程(上) 

kustomize/kubectl自动镜像部署&&互联网企业规范化上线流程(下) 

apisix网关、JMeter压测  

prometheus/grafana监控数据收集与展示 

k8s容器网络性能调优 

supervisor进程管理 

安装opcache和apcu 

APM性能监测工具skywalking 

链路跟踪工具zipkin

phpfpm和nginx配置

php整合apollo配置中心

php rdkafka操作kafka消息队列

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanghailiang2016

扔个包子砸我一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值