![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实战
是程序媛不是程序猿
Java架构师,最近刚跳槽某大厂。
分享我收集的Java干货资料和工作总结
展开
-
网易工程师亲历:一次sql缺少where条件的惨案…
话说那是一个愉快的周五的下午,刚经历双11双黑五12大促连环迎战,一周的工作也接近结束,任务也都要走向提测的节点了,心里美滋滋,可以早点回家啦~巴特,popo弹出一份:xxx master 的单元测试静态代码检查失败,单元测试失败用例x个。请在1小时内修复并重新执行,否则可能会打回提测,单测失败详情xxx。点开详情看看失败原因吧~最近整理了一些Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【Java】发给你~org.springframework.jdbc.U.原创 2020-09-21 12:32:16 · 305 阅读 · 0 评论 -
回想那天让我虎躯一震的bug:Mybatis Ognl引起的异常
最近线上项目的关键环节突然抛出了一个数据库访问的空指针异常,不免神经一紧,经过最终排查,确认了该问题属于mybatis 3.3.0(不包含)以下版本已存在的bug,新版本的mybatis已经修复,具体情况如下:系统jar版本异常堆栈排查过程根据堆栈信息,初步确定是mybatis的解析执行异常,通过搜索引擎进一步查证,该问题属于mybatis低版本中存在的并发bug,问题发生时也确实存在多个线程并发访问同一sql需进一步确认具体原因。由于之前对mybatis执行过程中mapper文件中定义原创 2020-09-09 18:43:41 · 402 阅读 · 0 评论 -
2020年网易内部疯转的Java学习资料,赶紧收藏!
1、线程池原理揭秘及多线程并发编程知识https://www.bilibili.com/video/BV1u4411B7xS2、分布式系统开发实战篇 - TCC分布式事务实现https://www.bilibili.com/video/BV1x4411R7hQ3、MyBatis插件原理与分页插件实战(问题咨询 微信weizhuanye234)https://www.bilibili.com/video/BV1Ag4y1a73A4、不学SpringBoot原理,终究是个CURDer!https原创 2020-09-07 17:40:56 · 144 阅读 · 0 评论 -
网易云音乐是怎么做曲库缓存的?设计动机大揭秘!
云音乐曲库缓存随着多年的实践、改善,结合曲库数据的特点,形成自有的一套缓存使用体系,并能够取得了很好的效果。在工作过程中,有些喜欢刨根问底的同学会经常来讨论这样设计的原因,想在其它场景中借鉴一样的思路,在此想以文章进行历程介绍,让更多的同学了解背后设计的动机。本篇文章较少形而上的理论知识,更多以实战为主,以解决问题作为切入点,讲述曲库缓存的设计之道缓存基础介绍缓存是系统设计中,用于提升底层系统访问能力的一种技术手段,它同样作用于云音乐的各个系统中,一种常用的缓存使用调用链路如下:转化为时序图.原创 2020-08-24 18:51:07 · 688 阅读 · 0 评论 -
【程序猿同事的分享】 redis性能问题诊断利器
redis-faina是一款非常好用的redis性能诊断工具,如果你的redis server遇到性能问题,比如cpu非常高,那么可以使用redis-faina来分析问题原因。redis-faina 是由Instagram 开发并开源的一个Redis 查询分析小工具,GitHub地址: https://github.com/facebookarchive/redis-faina。它是通过Redis的MONITOR命令来实现的,通过对在Redis上执行的query进行监控,统计出一段时间的query特性,原创 2020-08-20 17:41:55 · 186 阅读 · 0 评论 -
MyBatis 缓存的使用,看这篇就够了
在日常工作中,我们大多使用MyBatis的默认缓存配置,但是MyBatis缓存机制也有一些不足之处,一不留神就会出现脏数据,形成一些潜在的隐患,后续排查问题容易浪费时间精力。所以,如何用好MyBatis的缓存,是重中之重的。这里主要介绍MyBatis 的一级缓存和二级缓存。在默认的情况下, 只开启一级缓存(一级缓存是对同一个 SqlSession 而言的)。1 一级缓存同一个 SqlSession 对象, 在参数和 SQL 完全一样的情况先, 只执行一次 SQL 语句(如果缓存没有过期) 也就是只原创 2020-08-19 17:48:17 · 553 阅读 · 0 评论 -
随笔系列之延时队列
广义上来说,延时队列存在多种不同实现方式,每种实现方式对延时队列又有着不同的定义。但是,无论其怎么定义,延时队列总有一个共性,能够使进入队列的消息被延迟消费。一、背景介绍1、何为延时队列广义上来说,延时队列存在多种不同实现方式,每种实现方式对延时队列又有着不同的定义。比如,JDK中juc包下,自带的DelayQueue是这么定义的:“DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象。其中的对象只能在其到期时才能从队列中取走”—— Think .原创 2020-08-17 17:31:53 · 614 阅读 · 0 评论 -
过来领你的Bug之“质量度量“篇
前言之前我讲解了Bug记录平台以及如何对Bug进行分析。基本是在单个Bug详细内容的维度单点进行分析和改进,为我们的项目、产品进行质量提升。其实我们需要更高一层的思考问题,如何利用现有的数据评估我们的项目质量呢,这就涉及到关于质量度量的问题。质量度量简单来说就是一个项目或一个产品经过一段时间产品、开发、测试的迭代周期后,如何评估这个产品质量是否能够满足预期。可能会包含很多方面,例如短期来看的软件运转的是否良好,是否存在一些潜在的风险或遗留问题,是否能够直接发布上线。长期来看就是整个流程是否存在优化的空原创 2020-08-14 17:36:54 · 1041 阅读 · 0 评论 -
Mybatis解析xml打印工程SQL
据同事回忆,那是一场sql缺少where条件的惨案话说那是一个愉快的周五的下午,刚经历双11双黑五12大促连环迎战,一周的工作也接近结束,任务也都要走向提测的节点了,心里美滋滋,可以早点回家啦~巴特,popo弹出一份:*xxx master 的单元测试静态代码检查失败,单元测试失败用例x个。*请在1小时内修复并重新执行,否则可能会打回提测,单测失败详情xxx。点开详情看看失败原因吧org.springframework.jdbc.UncategorizedSQLException: ### E.原创 2020-08-13 17:45:57 · 520 阅读 · 0 评论 -
网易云音乐全链路跟踪系统实践
昨天的分享会,听我们公司技术大佬分享。收获超多!经过大佬允许后上传,除了大佬的独家干货,还有我自己的小见解。欢迎一起讨论~~本文全面讲述了云音乐全链路跟踪系统的设计思想,实践路线,以及在技术选择与功能迭代方面上思考总结。全文包含五个章节,每个章节完整表达了迭代周期的主要目标及所要解决的问题与思路。导言为什么我们在三年前要立项做这个系统?当然是我们遇到了服务问题。当时最明显的问题就是,随着我们的服务化拆分越来越多,服务间调用关系越来越复杂,我们已经完全无法跟踪系统的调用关系,某个链路出了问题,.原创 2020-07-30 16:19:01 · 833 阅读 · 0 评论