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


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

    apisix安装

    加载apisix资源

    1. helm repo add apisix https://charts.apiseven.com
    2. 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的端口未对外部开放,通过以下命令暂时开放端口给外部访问

    1. # 拿到apisix-dashboard的pod
    2. 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}")
    3. # 拿到apisix-dashboard的pod端口
    4. export CONTAINER_PORT=$(kubectl get pod --namespace apisix $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
    5. # 开放apisix-dashboard pod的内部端口到 外部的8080端口
    6. 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%) 

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

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

  • 相关阅读:
    WPF编程宝典:使用C# 2012和.NET 4.5 第4版---1.4 WPF体系结构
    图像处理ASIC设计方法 笔记27 红外非均匀校正的两点定标校正算法
    B - Magical Subsequence (CCPC2021哈尔滨)
    Java-字符串类型(String、StringBuffer、StringBuilder)
    怎么在idea中搭建一个maven项目?
    Algorithm Review 2
    关于XML一些介绍和注意事项
    2021 CCPC 哈尔滨 J. Local Minimum (思维题)
    mysql数据物理迁移
    HTML5
  • 原文地址:https://blog.csdn.net/fanghailiang2016/article/details/126652920