项目经验总结
文章平均质量分 62
实际工作项目,线上遇到的问题,以及故障演练,实战出真知
master-dragon
weixin:dwl_1270530306
展开
-
抽象一个通用的配置冲突解决方案
配置冲突,配置合并原创 2024-06-02 10:49:07 · 213 阅读 · 0 评论 -
规则引擎架构-基于easy-rules
来看,就是一个一个的对象组成了事实)。(只要在规则条件真正执行前,能明确这些事实就行)事实简单就是key、value对, 某个事实的名称,和事实的属性特征(以。在规则执行的过程中,可以做各种操作。可以看成规则的扩展点。:一个功能强大的基于Java应用程序的表达式语言。注解构造的规则是使用RuleProxy构造的。默认的规则引擎直接遍历规则去执行,如果。,你买到了酒就装包里走人,:Spring表达式语言。去酒店买酒,需要判断。,成年人才能购买酒,执行命中后,则去执行。原创 2023-05-27 13:52:42 · 2178 阅读 · 0 评论 -
Mac vsCode快捷键&插件总结
mac vscode快捷操作和实战原创 2022-09-17 11:21:49 · 675 阅读 · 0 评论 -
抛给前端“Index: 0, Size: 0“错误,再次提醒RuntimeException
遇到"Index: 0, Size: 0"错误,古老的垃圾代码导致犯错代码演示如下import java.util.ArrayList;import java.util.List;class Obj{ int id; String name;}public class Hello { final static int N = 5; /** * 其它接口 */ List<Obj> getNNumberObjs(){原创 2020-10-22 23:14:42 · 6188 阅读 · 0 评论 -
【线上】个人事故(兼容考虑不全)
设计上兼容问题未考虑周全的犯错,已有两次,虽然影响不大,但是对使用者来说,已然造成了一个坏印象具体错误抽象对某条记录修改有【线上】和【待审批】两个版本,版本对比diff详情页显示错误:有兼容情况,老版本判断 a & b & c; 新版本去掉了a, 只需要判断 b & c,但是这里未修改判断,导致用户未修改确看见了diff,这显然错误被投诉原因分析兼容未考虑周全,存在部分漏掉的场景,测试不充分以前犯过类似错误没能警惕,导致又一次的出现如何避免不能图快,需原创 2020-08-16 22:46:09 · 164 阅读 · 0 评论 -
【演练】Java应用频繁Full GC, OOM
目录前言演练代码故障现象jmap查看问题原因定位问题解决本文总结前言本文主要是演练java应用频繁full gc,oom,如何排查解决的过程演练代码线程池用自定义线程工厂jvm参数:-Xms20M -Xmx20M -XX:+PrintGC -Xloggc:gc.logimport java.math.BigDecimal;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.u原创 2020-07-15 23:31:59 · 1168 阅读 · 0 评论 -
【线上】加上重试机制(使用guava-retrying)
很多场景都有重试的必要,不能因为一些边界,某些抖动,不稳定因素导致一些误会和不必要的反复;如果重试能够解决问题,那么自然要使用重试原创 2019-03-26 23:25:59 · 410 阅读 · 0 评论 -
【线上】高网络IO引起的CPU负载问题
gc log截图部分如下当时是收到了cat心跳告警,当时的一些现场系统负载飙高gc & 线程Falcon查看机器的cpu,io情况磁盘IO网络IO飙高,CPU负载也飙高原因机器是8C12G的当时是开了400个线程在消费一个有400个partition的topic数据jvm设置如下:-Xms8G -Xmx8G -Xss512K-XX:+UseG1G...原创 2020-03-10 00:01:20 · 1970 阅读 · 0 评论 -
【线上】SQLAlchemy数据库连接满导致的问题
这是刚做Superset项目时遇到的线上问题,现回顾并整理下。原因和现象回顾访问高峰qps增大,然后数据库连接占用超过了SQLAlchemy设置的默认最大数量,且达到超时时间,这导致线上很多用户看到如下报错2018-11-04 11:27:50,370 /var/www/html/superset/views/base.py base.py[line:56] : ERROR QueuePool limit of size 10 overflow 10 reached, connection time原创 2020-07-13 23:56:43 · 1137 阅读 · 0 评论 -
【线上】查询处理由于错误变慢,进而导致tomcat线程池满,导致大量请求在线程池中等待,客户端调用超时关闭
客户端请求是60秒读超时返回,服务端一般处理查询是几十毫秒;由于特殊错误,导致处理时间变成了好几十秒了;原创 2020-07-13 23:06:02 · 1109 阅读 · 0 评论 -
【线上】jvm OOM(原因:对象实例过多)
jmap dump下来分析是一个对象实例过多,且该对象包含大json,因为是偶发,所以很诡异。最后排查原因定时任务拉取操作记录对象,拉取设置的时间范围过大为什么时间范围过大使用了一个当前时间和上一次定时任务运行时间用了本地变量去存储上一次时间,然后定时任务执行完去更新上一次时间变量一个实例倒是没什么大问题,多实例且任务是单实例运行了。那么,要是1个实例今天跑了一次定时任务,然后一直都是其它实例在跑定时任务;那么突然定时任务选中个这个实例,那么时间范围就是【1天前,now】,本来比如说1原创 2020-05-26 23:43:37 · 820 阅读 · 1 评论 -
【演练】Java CPU,内存等问题排查与定位解决
cpu 负载高排查演练1 启动java程序并观察cpu负载import java.util.*;import java.util.concurrent.TimeUnit;class Test { void testCpu(){ int num = 0; long start = System.currentTimeMillis() / 1000;...原创 2020-02-15 23:24:07 · 523 阅读 · 0 评论 -
【线上】EntityUtils.toString(resEntity,“UTF-8“) 处理时间很长问题
httpClient http 耗时久,排查是非流式处理返回数据的EntityUtils.toString(resEntity,"UTF-8")这句耗时很久,返回数据量太大了相关文档与讨论https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/util/EntityUtils.html#toSt...原创 2019-10-19 14:26:32 · 4833 阅读 · 3 评论 -
【项目总结】数据处理服务中间层系统
回忆下算法的几个特征:有穷性(Finiteness)算法的有穷性是指算法必须能在执行有限个步骤之后终止;确切性(Definiteness)算法的每一步骤必须有确切的定义;输入项(Input)一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;输出项(Output)一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是...原创 2020-03-14 15:32:28 · 650 阅读 · 0 评论 -
【项目总结】权限管理平台
权限系统原创 2019-07-20 15:19:36 · 504 阅读 · 0 评论 -
【项目总结】Superset
本文主要记录工作中,企业对开源项目Supsert(https://github.com/apache/incubator-superset)的改进,以及个人对此项目的一些总结。原创 2020-01-11 15:47:57 · 1840 阅读 · 2 评论