当前位置:主页 > 查看内容

使用APM管理电商应用_应用性能管理 APM_最佳实践

发布时间:2021-10-13 00:00| 位朋友查看

简介:本实践基于华为云服务编写,以某手机销售电商应用为例,如何将APM接入该电商应用并管理起来。该电商应用情况介绍: 该应用是未使用JBoss部署的JAVA应用,支持部署在SUSE12 SP2虚拟机上,运行环境支持JRE1.8及以上版本。 该应用包含五个微服务,每个微服务包……

本实践基于华为云服务编写,以某手机销售电商应用为例,如何将APM接入该电商应用并管理起来。该电商应用情况介绍:

  • 该应用是未使用JBoss部署的JAVA应用,支持部署在SUSE12 SP2虚拟机上,运行环境支持JRE1.8及以上版本。
  • 该应用包含五个微服务,每个微服务包含一个实例:
    • API网关服务:名称为apigw,主要负责应用整体的服务鉴权、限流、过滤等。
    • 商品管理服务:名称为product,主要负责商品查询、购买等。
    • 用户管理服务:名称为user,主要负责用户登录,以及购买商品时的用户身份核实等。
    • 数据持久服务:名称为dao,主要负责请求数据库操作。
    • 数据库服务:MySQL数据库。

下面介绍如何将APM接入该电商应用并管理起来。

操作流程

  1. 将应用部署到华为云服务器。APM当前只支持华为云服务器,所以需要将应用部署到华为云服务器上。
  2. 安装ICAgent。ICAgent是APM的采集代理,用于实时采集拓扑和调用链数据,您需要将其安装在应用所在服务器上。
  3. 修改应用启动参数,以确保APM可以监控应用。
  4. 在APM上管理应用,例如通过拓扑查看应用情况、通过事务了解用户体验情况等。

操作步骤

  1. 将应用部署到华为云服务器。

    1. 注册华为云账号并充值、购买Linux弹性云服务器,请参考购买并登录Linux弹性云服务器

      为保证应用性能,购买弹性云服务器时vCPU/内存请选择2核/4GB以上。应用只支持SUSE12 SP2操作系统,请在公共镜像中选择该镜像。

    2. 登录弹性云服务器,创建应用目录并进入目录,本实践以目录mall为例。
    3. ORACLE官方网站下载并安装应用需要的JRE 1.8版本。
    4. 执行如下命令将应用下载至创建的mall目录并安装。
      curl -l http://demos.obs.myhuaweicloud.com/demo_install.sh > demo_install.sh && bash demo_install.sh

  2. 安装ICAgent,请参考用户指南的安装ICAgent章节的首次安装
  3. 修改应用启动参数,确保应用被APM监控。

    修改应用的启动参数即在应用启动脚本增加下表参数:

    参数

    说明

    本实践举例值

    -javaagent

    采集探针依赖的jar包,该参数值是固定的,均取值为:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar

    /opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar

    -Dapm_application

    应用名称,您可以结合您的应用自定义。

    vmall

    -Dapm_tier

    应用层名称,指组成该应用的微服务名称。

    本例中根据微服务名称,取值分别为apigw、product、user、dao

    修改前后应用启动脚本对比如下:

    修改前:

    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml > dao.log &
    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-api-gateway-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_api.yml > api.log &
    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_userservice.yml > user.log &
    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-product-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_prod.yml > prod.log &
    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/cloud-simple-ui-1.0.0.jar --spring.config.location=file:/root/testdemo/ui.properties > ui.log &

    修改后(修改处已加粗表示):

    nohup java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-dao-service -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml > dao.log &
    nohup java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-apigw-service -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-api-gateway-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_api.yml > api.log &
    nohup java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-user-service -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_userservice.yml > user.log &
    nohup java -javaagent:/opt/oss/servicemgr/ICAgent/pinpoint/pinpoint-bootstrap.jar -Dapm_application=vmall -Dapm_tier=vmall-product-service -Xms512m -Xmx2048m -jar /root/testdemo/ecommerce-product-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_prod.yml > prod.log &
    nohup java -Xms512m -Xmx2048m -jar /root/testdemo/cloud-simple-ui-1.0.0.jar --spring.config.location=file:/root/testdemo/ui.properties > ui.log &

  4. 修改完成后,便可重新启动应用。等待三分钟左右,在APM界面上即可看到应用相关数据。

    后续可以在APM的概览、拓扑等界面中监控应用、定位应用的异常,具体可参考APM的用户指南


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐