摘要: 1. 问题 今天在开发中遇到这样一个问题,A同事在导入了我们的实验SDK后,发现实验无法正常获取,查看日志发现了NoClassDefFoundError异常,无法加载的的类中逻辑比较简单,只依赖了另外一个SDK包 2. NoClassDefFoundError分析和解决 一般情况下,碰到NoClas 阅读全文
posted @ 2024-04-08 11:27 songtianer 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 最近在看《通用源码阅读指导书:Mybatis源码详解》,这本书一一介绍了Mybatis中的各个包的功能,同时也涉及讲了一些阅读源码的技巧,还讲了一些源码中涉及的设计模式,这是本篇文章介绍的内容 在多说一点这本书,Mybatis是大部分Java开发者都熟悉的一个框架,通过这本书去学习如何阅读源码非常合 阅读全文
posted @ 2023-09-28 11:03 songtianer 阅读(399) 评论(0) 推荐(1) 编辑
摘要: 今天来介绍了两个陌生又熟悉的异常类,熟悉是因为我们经常会遇到它们,陌生是好像又从来不知道它们是做什么的 假定读者已经清楚了Java的异常分类: 1. 一是程序不能处理的**错误**(Error), 2. 二是程序应该避免而可以不去捕获的**运行时异常**(RuntimeException), 3. 阅读全文
posted @ 2023-09-05 17:22 songtianer 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 最近在工作的过程中,遇到了不少奇怪自己或者同事的Bug,都是一些出乎意料的,不太容易发现的,记录一下来帮助可能也遇到了这些Bug的人 # 1. 编译时泛型校验失效 ```java Map nameToType = new HashMap(); nameToType.put( "testName", 阅读全文
posted @ 2023-07-26 16:14 songtianer 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 先说结论:通过优化Xms,改为和Xmx一致,使系统的超时率降了四分之三 ![image.png](https://img2023.cnblogs.com/blog/2058002/202306/2058002-20230628185820689-1353266318.png) # 1. 背景 一个同 阅读全文
posted @ 2023-06-28 19:00 songtianer 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 另外一个推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程 在一次上线之后,发现日志大量缺失,缺失率达90%,确认是由上线引起的,但因为当时没立即发现这个问题,所以没有通过回滚解决 上线的内容改动了推荐请求日志,数据格式未变,增加了单条日志的 阅读全文
posted @ 2023-03-20 10:36 songtianer 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程 最近在碰到了几个bad case,需要通过sid来查询推荐日志,但发现部分无法在kibana查询到 2. 分析 推荐日志的整个收集流程如下: flowchart LR 线上机器日志 --> 阅读全文
posted @ 2023-03-20 10:35 songtianer 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 现象 年前,收到了短信报警,显示A服务的某台机器内存过高,超过80% 如上图所示,内存会阶段性增加。奇怪的是,十多台机器中只有这一台有这个问题 堆内内存分析 最先怀疑是内存泄漏的问题,所以首先使用jmap命令把堆dump下来 jmap -dump:format=b,file=service.hpro 阅读全文
posted @ 2023-03-06 19:32 songtianer 阅读(1941) 评论(0) 推荐(1) 编辑
摘要: 1. 背景 公司有一个推荐系统Rec,这个系统的主要功能是: 向外部系统提供推荐接口 根据请求获取推荐策略 根据推荐策略完成推荐的召回、过滤、打分、排序阶段 Rec作为微服务中的一环,本身不存储召回的物料信息,也不存储用户和物料的特征信息,它负责就是对各个服务的组合和流转 其流程如下: 2. 问题 阅读全文
posted @ 2022-12-06 19:17 songtianer 阅读(530) 评论(0) 推荐(2) 编辑
摘要: 1. 【背景】AB实验SDK耗时过高 同事在使用我写的实验平台sdk之后,吐槽耗时太高,获取实验数据分流耗时达到700ms,严重影响了主业务流程的执行 2. 【分析】缓存为何不管用 我记得之前在sdk端加了本地缓存(使用了LoadingCache),不应该这样慢 通过分析,只有在缓存失效之后的那一次 阅读全文
posted @ 2022-11-10 16:52 songtianer 阅读(3466) 评论(0) 推荐(0) 编辑