记一次由 MQ SDK 太简陋引发的生产事故
本文正在参加「Java应用线上问题排查经验/工具分享」活动 背景由于公司所有系统都在云上,所以服务器/数据库/中间件啥的用的都是某云服务商的产品,包括 MQ/Redis 等。​某周边小系统在流程改造过
【全网首发】MQ-消息堆积-JDK Bug导致线程阻塞案例分析
背景介绍业务介绍在某学习APP浏览文章,客户端会将浏览的文章信息上传到服务端,服务端将浏览信息最终存储到HBase;在某学习APP首页点击【我的】->【历史】,会展示用户浏览文章的历史记录。技术介绍服务端的服务是【阅读历史离线服务】,从metaq消费用户阅读文章的信息,解析、处理相关
【全网首发】记一次MySQL CPU被打满的SQL优化案例分析
背景介绍系统中有个公告模块,当用户登录后,根据用户所属机构查询公告列表,同时公告列表中需要展示出该用户对公告的阅读状态及阅读时间。公告(bulletin)、公告接收者(bulletin_receiver)、公告阅读者(bulletin_reader)定义及关联关系如下:应用使用的数据库连接池是
一次艰难的内存泄露排查,BeanUtils的锅
通过jstat -gcutil pid 5000 ,发现fgc次数很多而且频繁,此时老年代占比已经大约70%左右,且已经回收不了内存,我们这边设置的fgc阈值是老年代的70%
【全网首发】定位频繁创建对象导致内存溢出风险的思路
背景介绍近来一段时间排查了几例由于应用程序频繁创建对象导致FGC的问题,问题产生的场景包括:同一条SQL语句,平时返回预期内的数据条数,出问题的时候返回了几十万条数据,短时间内创建了大量对象进而导致非预期的GC。应用程序在处理Excel文件的时候,短时间内创建了大量对象进而导致非预期GC。
Java 问题排查技术分享
最近翻看以前写的 PPT, 发现了在2019年做的一次技术分享,关于 Java 问题排查,由于没什么公司机密可言,整理下分享给大家~线上问题处理流程直接放PPT截图吧,现在看来依然不过时问题排查可从三个方面入手知识:有些问题,思考一下就有答案,就像传说中多隆那样,回忆下就知
一次 RocketMQ 顺序消费延迟的问题定位
问题背景与现象昨晚收到了应用报警,发现线上某个业务消费消息延迟了 54s 多(从消息发送到MQ 到被消费的间隔):```2021-06-30T23:12:46.756 message processi
【全网首发】JVM时区配置-两行代码让我们一帮子人熬了一个通宵
问题描述某产品线应用【A】接收应用【B】发送到MQ的消息,经过业务逻辑处理后,将数据存储到数据库中,近期发现应用【A】数据库表中有些记录的时间比应用【B]数据库表中对应记录的时间少了8个小时。产品线反馈当前线上会断断续续的产生这种异常数据,异常数据量不清楚,估计不算多。分析过程相差整整8小时
【全网首发】关于RocketMQ Producer某个性能优化点的分析
背景介绍在上一篇文章【一次RocketMQ ons Bug导致消息不断堆积到重试队列的案例分析】,我们有提到为了优化Producer性能问题对Pandora进行了升级,升级后出现了问题。下面我们对Producer的这个优化点进行下分析记录。问题描述SLB(LVS+TEngine)在云平台的重要
完了完了!线上发生 OOM 了!
先从监控链路分析了一波,发现请求是已经打到服务上了,处理之前不知道为什么等了 3s,猜测是不是机器当时负载太大了,通过 QPS 监控查看发现,在接口慢的时候 CPU 突然增高,同时也频繁的 GC ,并且时间很长,但是请求量并不大,并且这台机器很快就因为 Heap满了而被下掉了。
【全网首发】稳定运行了多年的网关,偏偏让我掉进了坑
背景介绍在服务刚启动的时候,服务的运行状态并没有达到最佳,如果一下子将流量提升到日常运行的状态,会存在大量的请求超时。为什么服务刚启动的时候,服务不是最佳状态呢?Java应用类加载是按需加载的,在服务刚启动的时候,只会加载启动过程中需要的类;当服务接口被调用的时候,才会加载、初始化接口用到的
系统崩溃了?别惊慌!这里有快速恢复的方法!
网站挂了,系统当前的状态;根因分析:并发量高,资源不够用了;小结:梳理健康检查失败的原因及此类问题的排查方向;总结:解决慢SQL、GC频繁加内存、并发量高水平扩展加Pod;灵魂6问:压测做了没?
【全网首发】RocketMQ-没有消费者的消息堆积场景分析
背景介绍前面几篇文章分析了几个引起消息堆积的典型场景,分别是:业务逻辑处理慢导致消息堆积的场景,MQ-消息堆积-业务线程阻塞案例分析JDK BUG导致消息堆积的场景,MQ-消息堆积-JDK Bug导致线程阻塞案例分析RocketMQ SDK BUG导致消息堆积的场景,一次RocketMQ
让bug无处藏身,Java 线上问题排查神器分享!
导语本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。 正文这里先提示一下。在线上应急过程中要记住,只有一个总体目标:尽快恢复服务,消除影响。不管处于应急的哪个阶段,我们首先必须想到的是恢复问
【全网首发】一次RocketMQ ons SDK Bug导致消息不断堆积到重试队列的案例分析
背景介绍系统运行在专有云,应用运行时环境是EDAS Container( EDAS Container是EDAS 平台 HSF 应用运行的基础容器,EDAS Container 包含 Ali-Tomcat 和 Pandora),消息处理使用的是【ons SDK】,消息消费者使用【PUSH】方式【批
【全网首发】TimeZone-datetime在JVM时区和MySQL Session时区的转换
引言【JVM时区配置-两行代码让我们一帮子人熬了一个通宵】描述了由于代码BUG导致存储到数据库的时间比正常时间少八小时的案例。案例中对于数据库字段类型是datetime和timestamp的时区转换关系进行了描述,本文试图从代码角度描述以下逻辑:JDBC场景下MySQL Session时区如何
【译】Java并发编程之可见性错误详解
了解什么是可见性错误,为什么会发生,以及如何在并发Java应用程序中查找难以捉摸的可见性错误。
Java如何进行线上问题排查?
导语Java的线上故障排查,是每个程序员必备的技能。我们项目上线后,不是随时都有条件debug,也不是随时都能查到对应的日志文件,有时关键位置也不一定打日志,所以我们需要一个完成的排查过程,来解决这些突发事件。本文是一篇干货文章,从多个方面来解决Java的线上情况。正文内存瓶颈freefr
往往排查很久的问题,最后发现都非常简单。。。
线上某个 Topic 发生了大量的RetriableCommitException,并且集中在灰度机器上
云原生背景下如何配置 JVM 内存
前段时间业务研发反馈说是他的应用内存使用率很高,导致频繁的重启,让我排查下是怎么回事;在这之前我也没怎么在意过这个问题,正好这次排查分析的过程做一个记录

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。
首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。
原作者:Ayende Rahien
6篇文章7604阅读量
互联网场景中经常使用消息中间件进行消息路由、订阅发布、异步处理等操作,来缓解系统的压力;在高并发、高消息吞吐的互联网场景中,我们经常会使用消息队列(Message Queue)作为基础设施,在服务端架构中担当消息中转、消息削峰、事务异步处理 等职能。对于那些不需要实时响应的的业务,我们都可以放在消息队列中进行传输~
13篇文章24624阅读量