08 Java实战技巧
文章
14 Servlet容器
Servlet容器、Http服务器:Servlet、Tomcat、SpringMVC的关系 参考文章https://blog.csdn.net/cristianoxm/article/details/121268913 1. Servlet概念 servlet就是一个接口;接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范。有的人往往以为就是servlet直接处理客户端的http请求,其实并不是这样,servlet并不会去监听8080端口;直接与客户端打交道是“容器”,比如常用的tomcat。客户端的请求直接打到tomcat,它监听端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。 简而言之,就是说S...
30 问题排查和性能优化指南
30+ 是该主题下的文章和总结。
31 1.Jmeter压测工具
1 为什么性能测试概述软件性能测试是一种非功能性测试,其中应用程序的性能在预期或更高负载下进行评估。进行性能测试以测量系统的不同性能属性,如响应时间(速度),可靠性,资源使用,可扩展性,各种负载条件下的稳定性等。 基本功能JMeter也称为“Apache JMeter”,它是一个开源的,100%基于Java的应用程序,带有图形界面。 它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。 JMeter主要用于测试Web应用程序或FTP应用程序,但目前,它适用于功能测试,JDBC数据库连接,Web服务,通用TCP连接和OS本机进程。 您可以执行各种测试活动,如性能,负载,压力,回归和功能测试,以便针对您的Web服务器获得准确的性能指标。 Web Services - SOAP / XML-RPC Web - HTTP, HTTPS sites ‘web 1.0’ web 2.0 (ajax, flex 和 flex-ws-amf) 通过JDBC驱动程序的数据库 目录 - LDAP 通过JMS面向消息传递的服务 服务 - POP3, IMAP, SMTP 2 使...
32 Arthas问题排查工具
1 简介概述Arthas 是Alibaba开源的Java诊断工具。可实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。 解决的问题1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5.是否有一个全局视角来查看系统的运行状况?6.有什么办法可以监控到JVM的实时运行状态? 参考文档https://blog.csdn.net/ls18802694089/article/details/134678902 https://arthas.gitee.io/doc/quick-start.html 2 使用1.下载启动demo java程序是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出...
33 Java远程调试
1 server端启动命令 打jar包允许被远程调试 12java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9091 -jar xxx.jar 参数说明 transport: 指定运行的被调试应用和调试者之间的通信协议,它由几个可选值: dt_socket:主要的方式,采用socket方式连接。 dt_shmem:采用共享内存方式连接,仅支持 Windows 平台。 server: 指定当前应用作为调试服务端还是客户端,默认为n。 如果你想将当前应用作为被调试应用,设置该值为 y,如果你想将当前应用作为客户端,作为调试的发起者,设置该值为n。 suspend: 当前应用启动后,是否阻塞应用直到被连接,默认值为 y。 在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。 address: 暴露的调试连接端口,默认值为 8000。 此端口一定不能与项目端口重复,且必须是服务器开放的端口...
34 JVM参数调优
引言Jvm(Java虚拟机)是Java语言的基石,对于Java应用的性能至关重要。而Jvm启动参数的优化是提高Java应用性能的一个重要手段。本文将介绍Jvm启动参数的优化和一些示例,帮助开发者更好地理解和优化Jvm的启动参数。java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 优化方案Jvm性能优化Jvm性能优化是应用开发过程中关注的一个重要方面。通过优化Jvm启动参数,可以显著提升Java应用的性能。以下是一些常见的Jvm性能优化参数: 1234567-Xms: 指定Jvm的初始堆大小。-Xmx: 指定Jvm的最大堆大小。-Xmn: 指定Jvm的年轻代堆大小。-XX:MaxPermSize: 指定Jvm的永久代(或元空间)大小。-XX:SurvivorRatio: 指定Jvm的年轻代中Eden区和Survivor...









