TongWeb技术工作指南
in 转载文章 with 0 comment 阅读:75次
TongWeb技术工作指南
in 转载文章 with 0 comment 阅读:75次

在工作中遇到 TongWeb 相关问题时,先按此文档要求描述处理问题,提供相关信息和
日志。内容要详细清楚,禁用模糊词语表达,且描述内容必须为测试确认。以下所列出相关
工作问题及处理方式。

一 常见错误工作方式

1.群里发一个日志,然后就什么话也不说了,让别人猜吗?

2.描述问题时直接转发用户的聊天记录、聊天截图。

3.提供日志给不到主要信息,日志拍照水平差。

4.电话念日志信息。您的英文水平很高吗?

5.处理不了直接把同事电话给用户,还有让用户打 400 的。

6.处理不了的事找同事私聊,不知人家有没有空。

7.沟通碎片化,不能一次把事情说清楚,反复的问。

8.不反馈原始的需求和问题,直接让别人分析自己认为的问题点,容易把人带偏。

9.外出支持没有带好必要的产品安装包、工具、充电宝等,上战场不带枪的。

10.支持项目时,不知道对方的姓名、公司、职务,干完活就走人。事后问这事跟谁谁确认

的,不知道。

11.常打交道的公司销售、售前、开发人员、人力、财务,有了问题都不知道该找谁,谁是

哪个部门的都不知道、联系方式也不留。

12.跟非技术人员说明技术问题,不会用通俗的语言表达。

13.下了班不想接电话,不接电话就会投诉领导那,你是亏了还是赚了。

回忆一下,自己中了以上哪几条。

二 基本信息描述内容

在项目支持过程中,无论遇到什么问题,以下信息都需要了解清楚:

1.相关的 CPU 类型、操作系统版本号。

2.JDK 的版本号、TongWeb 的具体版本号。

3.问题现象的文字描述,现象截图。说明问题是必然出现,还是偶然出现,若偶然出现说

1

明出现规律和时间时隔。

4.若有异常日志,TongWeb 的日志以附件形式提供,收集日志规范。

(1) 若问题是必然出现则清理一下 TongWeb 日志,重新启动 TongWeb,运行应用后收集

从 TongWeb 启动后的整个日志。

(2) 若问题是偶然出现,则保留 TongWeb 从开始运行后的所有日志,且需要注明问题出现

的时间点或异常日志行数。最忌讳发一堆日志,不告诉时间点或异常日志行数。

(3) 禁止只收集一、两句的报错信息,要保证日志的完整性,应该收集 TongWeb 从启动开

始到出现问题时的整个日志。日志拍照要清晰,拍到准确位置。

#这里是已经失败在解部署,再看下面无意义。很多人还是喜欢拍这里。
[2020-11-16 14:41:11] [SEVERE] [core] [Context [dportal] startup failed due to previous errors]
[2020-11-16 14:41:11] [INFO] [core] [Closing Spring root WebApplicationContext]
[2020-11-16 14:41:11] [INFO] [deployment] [Undeploying app: /opt/TongWeb7.0/deployment/dportal]
[2020-11-16 14:41:12] [SEVERE] [web-container] [Error deploying web application directory
/opt/TongWeb7.0/deployment/dportal]
java.lang.RuntimeException: Start context failed. at com.tongweb.web.thanos.startup.ThanosHostConfig.deployWar(ThanosHostConfig.java:231)

(4) 通常应用采用 log4j 日志输出,保证应用的 log4j 配置正确,让应用日志输出在 TongWeb

日志中。

(5) 大日志必须通过压缩方式传输。

三 应用移植和应用异常

当遇到应用移植和应用异常问题时,需检查并提供以下信息:

1.注意应用使用了哪些框架,如:使用了 spring boot、CXF 等。列出所有 jar。

2.了解应用以前是在何种应用服务器上正常运行的,并且一定要确认:其它应用服务器的

运行环境,保证与 TongWeb 在同一台机器、 使用同一 JDK、同一数据库、同一应用包。否

则不能说明其它应用服务器没问题。

3.说明应用在其它应用服务器上的配置步骤,以及在 TongWeb 上的配置步骤,TongWeb 做

了哪些参数配置。

4.收集 TongWeb 日志,通常设为 INFO 级别日志就可以。

5.若应用有异常,但没什么日志输出,则设置应用的 log4j 日志级别为 DEBUG。运行后再

收集 TongWeb 的日志。

6.若应用中有异常堆栈输出,则从异常堆栈中查看哪些是应用代码,收集这些相关应用代

码的 java 或 class 文件都可以。

7.尽可能将问题模拟成 demo 或能搭建出复现问题的环境,并提供复现问题的文档。

8.对于要分析请求包的情况,还需要使用抓包工具。

四 以前运行稳定,最近才有问题的问题

1.这种问题主要是检查出现问题之前,对整个系统做过什么修改。特别是与 TongWeb 和应

用相关的修改。

2.询问相关人员最近是否修改过什么配置、使用情况有什么变化。

3.根据文件时间确定问题出现前配置是否改动过,例如:查看 TongWeb 的 startserver.sh

external.vmoptions、tongweb.xml 的文件时间,确认 TongWeb 何时被修改过。

4.不能以他人说:“什么都没改动过”,而自认为没有改动过任何配置,要以亲自检查为准。

而且即使没有人为的改动,系统本身也在发生改变,所以要仔细检查问题前后的改变。例如:

随着机器时间运行临时软件的 license 过期可能产生问题、随着日志写满磁盘出现问题、数

据库数据的变化造成问题、访问量的陡然增加造成性能问题。

五 乱码问题

遇到乱码问题时通常不会有日志输出,主要提供以下信息。

1.环境变量的 LANG 值和 locale –a 查看字符集。参数-Dfile.encoding=以及其设置值。

2.TongWeb 的 Web 容器编码设置。

3.对于 URL 的编码,在 TongWeb 的 http 通道中设置,默认 GBK。“URL 编码格式”相当于

tomcat 的 URIEncoding。“uri 处理”相当于 tomcat 的 useBodyEncodingForURI。

4.应用以前在何种应用服务器上运行而没有乱码问题,并询问此应用服务器的编码设置。

5.提供应用的编码设置,以及确认是否通过 filter 等做了应用转码。

6.搜集相关的应用源码,这一点很重要,否则无法协助处理问题。

六 TongWeb 宕机、假死、应用不能访问问题

遇到 TongWeb 宕机、假死、应用不能访问问题,千万不要先重启 TongWeb 解决。需提供以

下信息:

1.确认 TongWeb 的 java 进程是否还存在。

2.若 java 进程存在,而应用不能访问,检查 TongWeb 控制台是否能访问。

3.若 java 进程存在、控制台访问正常,则线程原因比较多,通过 kill -3、jstack 生成堆栈信

息来分析。

4.若 java 进程存在、控制台访问也慢,则内存原因比较多,通过 jstat、jmap 查看 JVM 内

存信息,并打出内存镜像。

5.若 java 进程已不存在,则检查 TongWeb 的 bin 目录下有没有 hs 或 javacore 开头的文件生

成,并提供此文件。并查看此时 TongWeb 的日志有没有 TongWeb 的正常停止信息,若有说

明是有人运行停止命令或应用中有 System.exit()代码。

6.确认应用有没有使用 java 调本地接口的代码,通常这部分使用不当会造成 TongWeb 宕机。

七 性能测试

在性能出现问题时,需提供以下信息:

1.硬件配置和网络拓扑图、通过 FTP 测试网络之间的实际带宽。

2.记录测试时的 CPU 和网络带宽使用情况。

3.说明已经优化的操作系统和 TongWeb 参数。

4.说明测试场景,压测的规则、脚本、并发量。

5.记录 JVM 的 GC 日志、jstack 日志、TongWeb 日志。

6.尽可能配成 TongWeb 的连接池以便监控,或优化开源数据源。

7.记录 TongWeb 线程池、数据库连接池、SQL 语句的监控结果。

8.提供测试结果报告。

学习 TongWeb,你需要掌握的内容:

1.Java 及 JavaEE 知识、Linux、数据库的基本操作。

2.TongWeb 各个版本的差别、license 绑定规则。TongWeb 手册中的内容要熟悉,不要走马

观花。产品目录:\168.1.1.200\产品目录_内部试用\TongWEB 。

3.bin/external.vmoptions 中各个参数的作用、conf/tongweb.xml 与控制台的对应关系、

conf/tongweb.properties、conf/default-web.xml 配置参数的功能要知道。

4.samples 目录下的用例要跑一遍,代码最好能看懂。

5.学习使用 Apache、nginx 配置 TongWeb 集群,此为常用负载软件, THS 即为 Apache proxy。

THS 配置 http://httpd.apache.org/docs/2.4/mod/mod_proxy.html

6.Spring mvc、Spring boot、hibernate 框架。做一个 Spring+hibernate 测试用例, 熟悉 bean

xml 文件中开源数据源(c3p0,dbcp,durid)与 TongWeb 数据源的切换。SpringBoot+TongWeb

嵌入版的用例。Spring JMS+TongLINK/Q 用例。

7.性能分析两大招:内存和线程。 学习 JVM 内存优化,jstack 线程分析,jmap 内存分析。

图书《Java 程序性能优化》。

8.容 器 docker 教 程 https://www.runoob.com/docker/docker-tutorial.html k8s 教

https://kubernetes.io/zh/docs/contribute/generate-ref-docs/quickstart/

9.TongWeb 安全版 ASDP, 参考:https://rasp.baidu.com/#section-intro

10.国密证书 http://gmssl.org/, 生成国密证书分别在 THS 和 TongWeb 嵌入版上运行。 可

以用密信国密浏览器。

11.性 能 分 析 工 具 : (1) TongAPM 最 起 码 演 示 会 用 这 个 。 (2) 阿

里 TProfiler https://github.com/alibaba/TProfiler, (3) 阿 里 开 源 的 java 诊 断 工 具

—Arthas https://github.com/alibaba/arthas

TongWeb技术工作指南-王普-2021

Responses
您是第 614028 位访客