- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 Invalid bound statement (not found)解决
Invalid bound statement (not found)解决
2022-10-14 10:21:34 1973
原创 对象循环引用的json序列化溢出问题
目录问题描述排查问题demo模拟解决方案某系统线上容器大规模504告警查看监控 org.apache.catalina.connector.ClientAbortException大量报错load高达20多 cpu升高机器完全卡死 业务指标都不上传了 监控显示大量old gc综上所述是GC导致的一些列问题发现未知问题先回滚。定位是fullgc导致、进一步观察错误日志定位到 定位到是GSON 进行json序列化时发生了溢出。定位下来是gson对HttpRequest进行toJson()导致的。初步判断是对象的
2022-06-22 20:15:16 376
原创 一例线上高并发情况下的RT抖动优化
目录背景:现象:定位&分析:解决:背景:某项目由于业务需求,某个接口QPS需2000左右。比平时该项目全部请求QPS增加100倍。上线后收到间歇性504超时告警。现象:分析Cat long-url 筛选3s以上的请求。分析多个请求的logView后,并未发现耗时的点。 怀疑gc,发现gc没有配置垃圾回收器。用的jdk8默认的回收器UseParallelGC 即 Parallel Scavenge + Parallel Old。cat上并未出现预想中的打.
2022-04-08 19:30:11 515
原创 spring httpInvoker 导致的大量tomcat线程阻塞问题排查
背景、现象 nginx 504告警、大量请求504。客户反馈用户打不开页面。 问题排查、定位 处理方案
2021-06-10 11:46:14 835 2
原创 canal集群TableMetatsdb(时序表结构方案设计)配置理解、实现原理
目录1. Tsdb作用2. Tsdb实现方式(单机h2、集群mysql)3. Tsdb常见问题4. 配置了tsdb后依然出现column size is not match for table: 的异常1. Tsdb作用主要解决MySQL 某一时刻发生DDL变更,如果回溯时间跨越DDL变更的时刻,产生解析字段不一致的问题。参照https://github.com/alibaba/canal/wiki/TableMetaTSDB2. Tsdb实现方式(单机h2、集群m...
2021-03-29 10:36:50 1835
原创 OpenApi开放平台架构
鉴权 token认证 令牌动态交换参数auth认证 防止重放攻击调用次数 限流兼容内网SOA可配置的Url 路径 调用内网服务命 方法 调用参数 返回数据的映射RPC 动态调用 类的动态加载#mermaid-svg-BfrGqKw1t2IrsY7G .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg.
2020-10-29 22:19:50 2213
原创 java编程规范心得
一、编程规约(一)命名规约 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / $Object / name_ / name$ / Object$ 【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用。 反例: DaZhePromotion [打折] / getPing...
2020-08-13 11:50:51 642
原创 DirectByteBuffer 堆外内存高引起G1 gc cpu load高 || cpu busy
对外内存监控示例设置-XX:-+DisableExplicitGC 限制堆外内存大小 如果没有设置默认上限和 -Xmx 大小一致 堆外内存不够将触发full gc回收堆内对象,有引用堆外内存的对象被回收后触发finalize回收堆外内存 或者触发cleaner回收。 堆外内存查看 JDK 获取堆外内存使用情况 /Library/Java/JavaVirtualMach...
2020-04-15 12:04:23 839
原创 G1 日志解析
GC 日志2020-04-08T13:37:57.402+0800: 317780.856: Application time: 1.7859709 seconds2020-04-08T13:38:00.137+0800: 317783.591: Application time: 2.7316155 seconds{Heap before GC invocations=54601 (f...
2020-04-08 13:59:56 723
原创 JVM获取系统逻辑CPU数量
导语上文分析到JVM 默认-XX:ParallelGCThreads参数源码分析时看到得到的计算公式8 + (n- 8) * (5/8) 这个n大家都知道是机器CPU。可以具体什么类型的CPU呢?逻辑CPU、物理CPU?这两者区别是什么?JVM用的优势那种CPU呢?带着这些疑问,笔者进行了继续的分析。机器CPU类型释疑首先如何查看Linux机器CPU信息。大家都知道...
2020-02-27 16:35:36 915
原创 JDK9-G1 -XX:ParallelGCThreads 默认选择源码解析
参数含义源码分析参数含义-XX:ParallelGCThreads 并行阶段最大的线程数源码分析 hotspot/src/share/vm/runtime/vm_version.hpp /* * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved....
2020-02-27 11:34:29 2126
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人