- 博客(52)
- 收藏
- 关注
转载 Linux服务器大量log日志查看命令,快速定位错误
针对大量log日志快速定位错误地方 tail -f catalina.ou(动态查看日志) cat catalina.ou(从头打开日志文件) 可以使用 >nanjiangtest.txt 输出某个新日志去查看tail/head简单命令使用:1 根据关键字查找出行号用grep拿到的日志很少,我们需要查看附近的日志.我是这样做的,首先: cat -n test.log | grep “关键词” 得到关键日志的行号cat -n catalina.out|tail -n +13230539|
2023-03-23 16:00:32
1671
翻译 6.5 Java, JDBC, and MySQL Types
ResultSet.getObject()方法用于 MySQL 和 Java 类型之间的类型转换,并在适当的地方遵循 JDBC 规范。通常,任何 MySQL 数据类型都可以转换为 java.lang.String,任何数字类型都可以转换为任何 Java 数字类型,尽管可能会出现舍入、溢出或精度损失。下表列出了始终保证有效的转换。第一列列出了一种或多种 MySQL 数据类型,第二列列出了一种或多种 MySQL 类型可以转换为的 Java 类型。
2023-03-15 10:17:12
208
原创 spring boot actuator 动态修改日志级别
Spring Boot Actuator包括在运行时查看和配置应用程序日志级别的功能。您可以查看整个列表,也可以查看单个记录器的配置,该配置由显式配置的日志级别和日志框架给出的有效日志级别组成。null表示没有显式配置。
2023-03-07 14:01:18
1218
原创 spring boot actuator 1.X 修复server.port为0,注册的是management的端口号问题
/8762是工程注册的业务端口号。
2023-02-24 17:56:56
760
原创 spring boot actuator 1.X 接入prometheus
设置management.context-path(与spring boot 2.X 默认值相同)指定management.port,独立于业务端口security.user.name、security.user.password配置账号密码(密码要使用强密码)3 验证http://localhost:8087/actuator/prometheus访问接口,第一次需要输入账号、密码。prometheus.yml 新增5 grafana5.1 配置prometheus数据
2023-02-21 20:13:21
712
原创 使用toString提高json序列化性能
每个对象的toString方法,实现各不相同。下图是idea默认提供的11种。日志中打印对象(默认调用toString())用于问题排查,但是缺少格式化分析。参照https://blog.youkuaiyun.com/qq_39020347/article/details/126585275。自有代码推荐toString模拟json,第三方代码适用JSON框架。1.1 idea toString模板。toString模拟json。借鉴标准协议如json。1.2 json框架。
2023-01-20 09:33:52
567
原创 Arthas打印对象
ObjectView是Arthas提供的用于打印对象的工具类,通过反射打印字段。可以把功能单独提取出来,用于代码日志、问题分析。如果是自有代码,可以通过自定义toString方法实现,但是如果不是自有代码,只能通过反射获取。一般打印对象,是调用该对象的toString方法,但是可能获取不到想要的字段信息。Arthas中的vmtool 利用JVMTI接口,实现查询内存对象的功能。
2022-11-20 23:23:09
747
原创 打印类与对象字段、方法
做代码分析,一般需要1、类的继承关系2、类的静态变量、静态方法3、类的实例变量、实例方法idea 自带的Diagrams可以帮助分析类的继承关系、变量、方法。但是无法区分是静态还是实例的。因此可以利用反射,统计下该类信息。
2022-11-20 22:42:27
231
转载 线程有哪几种状态?
线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型,一个java线程对应一个OS线程,线程有多个生命状态。建议结合jstack信息分析。
2022-10-30 21:11:13
808
原创 ThreadGroup
ThreadGroup线程组表示一组线程。 此外,线程组还可以包括其他线程组。 线程组形成一个树,其中除初始线程组之外的每个线程组都有父节点。允许线程访问有关其自己的线程组的信息,但不允许访问有关其线程组的父线程组或任何其他线程组的信息。从以下版本开始:1.03 构造器4 方法...
2022-07-11 15:27:06
278
原创 JCmd源码分析
基于openjdk-jdk8-b120。sun.tools.jcmd.JCmd是JCmd工具的入口。代码分析类似JInfo无无main方法作为Jjstack的入口。
2022-07-06 23:00:20
175
翻译 jcmd 命令
将诊断命令请求发送到正在运行的 Java 虚拟机 (JVM)。jcmd [-l|-h|-help]jcmd pid|main-class PerfCounter.printjcmd pid|main-class -f filenamejcmd pid|main-class command[ arguments]该jcmd实用程序用于向 JVM 发送诊断命令请求。它必须在运行 JVM 的同一台机器上使用,并且具有用于启动 JVM 的相同有效用户和组标识符。如果您jcmd不带参数或使用-l选项运行,它会打印正在
2022-07-06 22:33:49
509
翻译 jps命令
列出目标系统上检测的 Java 虚拟机 (JVM)。此命令是实验性的,不受支持。jps [ options ] [ hostid ]options命令行选项。请参阅Options。hostid应为其生成进程报告的主机的标识符。它hostid可以包括可选组件,这些组件指示通信协议、端口号和其他实现特定的数据。请参阅主机标识符。该jps命令列出目标系统上已检测的 Java HotSpot VM。该命令仅限于报告有关其具有访问权限的 JVM 的信息。如果该jps命令在没有指定 a 的情况下运行hostid,则
2022-07-03 22:17:30
3057
翻译 jmap命令
打印进程、核心文件或远程调试服务器的共享对象内存映射或堆内存详细信息。此命令是实验性的,不受支持。jmap [ options ] pidjmap [ options ] executable corejmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IPoptions命令行选项。请参阅Options。pid要为其打印内存映射的进程 ID。该进程必须是 Java 进程。要获取机器上运行的 Java 进程的列表,请使用jps(1)命令。exe
2022-07-03 22:09:49
703
原创 jstack源码分析
基于openjdk-jdk8-b120。sun.tools.jstack.JStack是JStack工具的入口。代码分析类似JInfo无无main方法作为Jjstack的入口。ToolJStack2.3 构造器ToolJStack2.4 方法main方法作为JStack的入口。
2022-07-03 22:00:19
262
翻译 jstack
打印 Java 进程、核心文件或远程调试服务器的 Java 线程堆栈跟踪。此命令是实验性的,不受支持。jstack [ options ] pidjstack [ options ] executable corejstack [ options ] [ server-id@ ] remote-hostname-or-IPoptions命令行选项。请参阅Options。PID为其打印堆栈跟踪的进程 ID。该进程必须是 Java 进程。要获取机器上运行的 Java 进程的列表,请使用jps(1)命令。ex
2022-07-03 17:01:59
801
原创 jinfo源码分析
基于openjdk-jdk8-b120。sun.tools.jinfo.JInfo是jinfo工具的入口。无无main方法作为Jinfo的入口。Tool2.3 构造器ToolJInfo2.4 方法main方法作为Jinfo的入口。
2022-07-03 16:45:48
250
原创 jinfo的使用
并非所有参数都支持动态修改。参数只有被标记 manageable的flag可以被实时修改。其实,这个修改能力是 极其有限的。大部分与gc相关,gc调优下可能使用到。
2022-07-02 22:51:24
407
原创 HotSpotAgent源码分析
基于openjdk-jdk8-b120。可配置Java类型大小的调试器接口的扩展。允许从远程JVM读取基本Java类型的大小。不同的系统有不同的VirtualMachine,通过jni调用各自系统的c实现。下面只分析WindbgDebuggerLocal。DebuggerBaseWindbgDebuggerLocal1.3 构造器DebuggerBaseWindbgDebuggerLocal1.4 方法太多,忽略封装必须导出到Java级别的机器特定信息。必须实现可序列化不同的系统有不同的Ma
2022-07-02 18:10:56
798
原创 ServiceLoader源码分析
用于加载服务实现的工具。服务是众所周知的接口或类,其中存在零个,一个或多个服务提供者。 服务提供者 (或只是提供者 )是一个实现或子类知名接口或类的类。 ServiceLoader是一个对象,用于在应用程序选择时查找并加载在运行时环境中部署的服务提供程序。 应用程序代码仅指服务,而不是服务提供商,并且假定能够区分多个服务提供商以及处理没有服务提供商所在的可能性。获取服务加载程序应用程序通过调用ServiceLoader的静态load方法之一来获取给定服务的服务加载程序。 如果应用程序是一个模块,那么它的
2022-07-01 10:42:36
336
原创 VirtualMachine源码分析
基于openjdk-jdk8-b120。VirtualMachine表示此Java虚拟机已附加到的Java虚拟机。 它所连接的Java虚拟机有时称为目标虚拟机或目标VM 。 应用程序(通常是诸如managemet控制台或探查器之类的工具)使用VirtualMachine将代理加载到目标VM中。 例如,用Java语言编写的探查器工具可能会附加到正在运行的应用程序并加载其探查器代理以分析正在运行的应用程序。通过使用标识符标识目标虚拟机的attach方法来获取VirtualMachine。 标识符与实现有关,但通
2022-06-30 23:00:51
1119
翻译 jinfo
生成配置信息。此命令是实验性的,不受支持。jinfo [ option ] pidjinfo [ option ] executable corejinfo [ option ] [ servier-id ] remote-hostname-or-IPoption命令行选项。请参见Options。pid要打印其配置信息的进程ID。该进程必须是Java进程。要获取计算机上运行的Java进程列表,请使用jps(1)命令。executable生成核心转储的Java可执行文件。core要打印其配置信息的核心
2022-06-26 22:57:57
164
原创 HashMap源码分析 jdk8
jdk 1.8 java.util.HashMap类图通过IDEA生成HashMap类图。HashMap实现了Map接口。状态AbstractMap // Views /** * Each of these fields are initialized to contain an instance of the * appropriate view the first time this view is requested. The views are
2022-05-01 11:38:51
314
2
原创 HashMap源码分析 jdk7
jdk 1.7 java.util.HashMap类图通过IDEA生成HashMap类图。HashMap实现了Map接口。状态AbstractMap // Views /** * Each of these fields are initialized to contain an instance of the * appropriate view the first time this view is requested. The views are
2022-05-01 10:58:10
150
原创 TreeMap源码分析
jdk 1.8 java.util.TreeMap类图通过IDEA生成TreeMap类图。LinkedList实现了Map(线性表)、SortedMap(队列)、NavigableMap接口。状态AbstractMap // Views /** * Each of these fields are initialized to contain an instance of the * appropriate view the first time this
2022-04-27 15:15:15
185
原创 jasypt 源码分析
1 依赖工具MavenGitJDKIntelliJ IDEA2 源码拉取git clone git://github.com/jasypt/jasypt.gitcd jasypt/mvn clean install3 BasicPasswordEncryptorTest4 provider默认provider来自jre/lib/security/java.securitysecurity.provider.1=sun.security.provider.Sunsecurit
2022-01-25 17:05:11
1882
原创 精尽 jasypt-spring-boot 源码分析 3.0.4
1 依赖工具MavenGitJDKIntelliJ IDEA2 源码拉取git clone git://github.com/ulisesbocchio/jasypt-spring-boot.gitcd jasypt-spring-boot/# 3.0.4是最新的版本git checkout jasypt-spring-boot-parent-3.0.4mvn clean install3 jasypt-spring-boot-demoSystem.setProperty("j
2022-01-25 16:43:49
825
原创 精尽 jasypt-spring-boot 源码分析 1.0
1 依赖工具MavenGitJDKIntelliJ IDEA2 源码拉取git clone git://github.com/ulisesbocchio/jasypt-spring-boot.gitcd jasypt-spring-boot/# 1.0是最早的版本,更加容易理解作者的思路git checkout 1.0mvn clean install3 jasypt-spring-boot-demoSystem.setProperty("jasypt.encryptor.pa
2022-01-25 16:21:23
253
翻译 如何加密用户密码
作者 Daniel Fernandez 1 概述几乎所有现代 Web 应用程序都需要以一种或另一种方式加密其用户的密码。我们可以说,从应用程序拥有用户并且用户使用密码登录的那一刻起,这些密码必须以加密方式存储。这有一些直观的原因:我们的数据存储可能会受到影响,我们的通信也会受到影响。但最重要的原因是我们必须将用户的密码视为敏感的个人数据。他们的密码是他们隐私的关键,所以他们是个人的,他们是敏感的,没有人(甚至我们)无权知道他们。如果我们想获得用户的信任,我们必须尊重这一点。2 算法所以,我们必须加密
2022-01-18 17:27:16
1678
转载 apache common pool2原理与实战
简介对象池顾名思义就是存放对象的池,与我们常听到的线程池、数据库连接池、http连接池等一样,都是典型的池化设计思想。对象池的优点就是可以集中管理池中对象,减少频繁创建和销毁长期使用的对象,从而提升复用性,以节约资源的消耗,可以有效避免频繁为对象分配内存和释放堆中内存,进而减轻jvm垃圾收集器的负担,避免内存抖动。Apache Common Pool2 是Apache提供的一个通用对象池技术实现,可以方便定制化自己需要的对象池,大名鼎鼎的 Redis 客户端 Jedis 内部连接池就是基于它来实现的。
2021-10-08 17:52:29
1909
3
翻译 第三章 Logback configuration
我们首先介绍配置logback的方法,并使用许多示例配置脚本。Joran, logback所依赖的配置框架将在后面的章节中介绍。配置logback将日志请求插入到应用程序代码中需要大量的计划和努力。观察表明,大约4%的代码专门用于日志记录。因此,即使是中等规模的应用程序也会在其代码中包含数千条日志语句。考虑到它们的数量,我们需要工具来管理这些日志语句。Logback可以通过编程方式配置,也可以使用XML或Groovy格式的配置脚本进行配置。顺便说一下,现有的log4j用户可以使用PropertiesT
2021-08-25 10:45:48
823
翻译 第二章 Logback的架构
Logback的架构Logback的基本架构是足够通用的,因此可以在不同的情况下应用。目前,logback分为logback-core、logback-classic和logback-access三个模块。核心模块为其他两个模块奠定了基础。经典模块扩展了核心。经典模块对应于log4j的一个显著改进的版本。logback -classic本地实现了SLF4J API,这样您就可以在logback和其他日志系统(如JDK 1.4中引入的log4j或java.util.logging (JUL))之间轻松地来
2021-08-19 16:33:02
362
翻译 第一章 介绍
标题标题logback是什么?Logback的目的是作为流行的log4j项目的继承者。它由log4j的创始人Ceki Gülcü设计。它建立在十年的设计工业强度测井系统的经验之上。由此产生的产品,即logback,比所有现有的日志系统更快,占用的空间更小,有时甚至大得多。同样重要的是,logback提供了其他日志记录系统所缺少的独特和相当有用的特性。Hello World为了运行本章中的示例,需要确保类路径上存在某些jar文件。详情请参阅安装页面。需求除了Logback-classic .jar之
2021-08-18 15:50:12
257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人