微服务引擎 CSE-配置及验证优雅上下线能力:验证优雅上下线能力

时间:2023-11-14 15:55:48

验证优雅上下线能力

  • 验证优雅上线能力。
    图1 优雅上线验证部署图

    如上图所示,该套nacos应用有nacos-rest-consumer、nacos-rest-provider(两个实例)以及nacos-rest-data服务,其中灰色的实例已关闭开启优雅上线,而绿色实例开启优雅上线功能。

    若需关闭预热,请添加环境变量“grace_rule_enableWarmUp=false”进行指定。

    而服务nacos-rest-consumer通过接口graceHot进行模拟调用。

    1. 下载demo应用并打包。
    1. 按照优雅上线验证部署图进行部署并将nacos-rest-provider的其中一个实例开启优雅上线能力。
    2. 查看应用是否已全部接入ServiceComb引擎。

      参考查看微服务列表查看您的应用是否已接入ServiceComb引擎。

    3. 待应用接入ServiceComb引擎后,使用以下脚本invoke-hot.sh模拟调用过程。
       #!/bin/bash
       endpoint=127.0.0.1:31021
       url=${endpoint}/graceHot
       while true
       do
         echo `curl -s ${url}`
       done

      endpoint为nacos-rest-consumer服务的调用地址,即ip:port。需根据实际nacos-rest-consumer地址进行替换。

    4. 查看服务调用情况。

      使用脚本stat.sh查看服务调用情况,脚本如下:

       #!/bin/bash
       endpoint=127.0.0.1:31021
       watch curl ${endpoint}/stat

      下图为某个时刻统计的调用结果:

      上图中实例x.x.0.55:8009关闭了优雅上线, 实例x.x.0.51:8004开启了优雅上线,观察请求数(requestCount)与QPS,可观察到开启优雅上线的实例的QPS与请求数都小于关闭优雅上线的实例。持续观察流量请求情况,直到两个实例QPS基本持平则结束验证。

  • 验证优雅下线能力。

    优雅下线验证部署图如下:

    如上图,该套nacos应用有nacos-rest-consumer、nacos-rest-provider(两个实例)、nacos-rest-provider-close-grace(两个实例)以及nacos-rest-data服务,其中服务nacos-rest-provider-close-grace关闭了优雅下线,其他服务开启优雅下线。

    • 服务说明。

      nacos-rest-provider-close-grace与nacos-rest-provider同属于一个jar应用,nacos-rest-provider-close-grace请使用环境变量“spring_application_name=nacos-rest-provider-close-grace”进行指定

    • 关闭优雅下线的方法。

      添加环境变量“grace_rule_enableGraceShutdown=false”进行指定

    nacos-rest-consumer通过调用接口graceDownOpen测试验证优雅下线能力;调用接口graceDownClose对比未开启优雅下线时请求处理情况。查看调用情况可使用nacos-rest-consumer接口的stat方法进行请求统计。

    1. 下载demo应用并打包。
    1. 按照优雅下线验证部署图进行部署,并关闭nacos-rest-provider-close-grace的优雅下线能力。
    2. 查看应用是否已全部接入ServiceComb引擎。

      参考查看微服务列表查看您的应用是否已接入ServiceComb引擎。

    3. 待应用接入ServiceComb引擎后,使用如下脚本invoke.sh模拟请求。
       #!/bin/bash
       endpoint=127.0.0.1:31021
       openUrl=${endpoint}/graceDownOpen
       closeUrl=${endpoint}/graceDownClose
       while true
       do
         echo `curl -s ${openUrl}`
         echo `curl -s ${closeUrl}`
       done
      • endpoint为服务nacos-rest-consumer实例的请求地址,即ip:port。需根据实际nacos-rest-consumer地址进行替换。
      • openUrl为开启优雅下线能力的调用接口。
      • closeUrl为关闭优雅下线能力的调用接口。
    4. 查看应用的请求情况。

      参考如下脚本stat.sh查看请求调用情况:

       #!/bin/bash
       endpoint=127.0.0.1:31021
       watch curl ${endpoint}/stat

      endpoint为服务nacos-rest-consumer实例的请求地址,即ip:port。

    5. 对服务进行缩容,模拟下线。

      分别对nacos-rest-provider-close-grace与nacos-rest-provider进行缩容,将实例缩容为1个。

    6. 使用4的脚本,查看服务调用情况。

      上图中,graceDownClose为关闭优雅下线能力的请求统计,可以看到存在4个错误请求(errorCount), 而下方graceDownOpen为开启优雅下线能力的请求统计,可以看到未出现错误请求。

support.huaweicloud.com/bestpractice-cse/cse_05_0036.html