草庐IT

Charles线上抓包工具的保姆版详细配置(Android、iOS)

1.下载Charles:https://www.charlesproxy.com/download/2.配置Charles代理端口号:在Charles上的菜单Proxy->ProxySettings->Port,Port可以随便指定,默认取的88883.查看本机的ip地址:在Charles上的菜单Help->LocalIPaddress4.确保手机连上与电脑相同Wifi,在手机的Wifi连接配置中,设置代理手动,在主机名输入运行Charles的电脑IP地址和端口号(默认8888)。5.在Charles上的菜单Help->SSLProxying-->InstallCharlesRootCerti

排查线上CPU飙高

1、本案例的排查过程使用的阿里开源的Arthas工具进行的,不使用arthas,使用JDK自带的命令也是可以。2、在开始排查之前,可以先看一下CPU的使用情况,最简单的就是使用top命令直接查看(大写P按照CPU占用率排序):top-10:32:38up11days,17:56,0users,loadaverage:0.84,0.33,0.18Tasks:23total,1running,21sleeping,0stopped,1zombie%Cpu(s):95.5us,2.2sy,0.0ni,76.3id,0.0wa,0.0hi,0.0si,6.1stKiBMem:8388608total,

(记录一次线上问题)mongodb和mysql的区别

最近做了一个版本,是数据迁移,我们的一项核心业务,阿姨简历数据保存,使用的存储方式是mongodb,但是后来发现这种方式不利于数据关联,不好开展后续的一些业务开发,于是我们进行拆表,将阿姨数据拆成一个主表和好几个附表。先看下mongodb的数据结构,再对比下mysql的数据结构,由一张aunts表拆成了六张表uc_aunt_resume 主表uc_aunt_resume_ext 扩展表uc_aunt_resume_attach 图片附件表uc_aunt_resume_working_experiences  工作经历uc_aunt_resume_family_member  家庭成员uc_au

(记录一次线上问题)mongodb和mysql的区别

最近做了一个版本,是数据迁移,我们的一项核心业务,阿姨简历数据保存,使用的存储方式是mongodb,但是后来发现这种方式不利于数据关联,不好开展后续的一些业务开发,于是我们进行拆表,将阿姨数据拆成一个主表和好几个附表。先看下mongodb的数据结构,再对比下mysql的数据结构,由一张aunts表拆成了六张表uc_aunt_resume 主表uc_aunt_resume_ext 扩展表uc_aunt_resume_attach 图片附件表uc_aunt_resume_working_experiences  工作经历uc_aunt_resume_family_member  家庭成员uc_au

MySQL 千万数据库深分页查询优化,拒绝线上故障!

文章首发在公众号(龙台的技术笔记),之后同步到简书和个人网站:xiaomage.info优化项目代码过程中发现一个千万级数据深分页问题,缘由是这样的库里有一张耗材MCS_PROD表,通过同步外部数据中台多维度数据,在系统内部组装为单一耗材产品,最终同步到ES搜索引擎MySQL同步ES流程如下:通过定时任务的形式触发同步,比如间隔半天或一天的时间频率同步的形式为增量同步,根据更新时间的机制,比如第一次同步查询>=1970-01-0100:00:00.0记录最大的更新时间进行存储,下次更新同步以此为条件以分页的形式获取数据,当前页数量加一,循环到最后一页在这里问题也就出现了,MySQL查询分页OF

MySQL 千万数据库深分页查询优化,拒绝线上故障!

文章首发在公众号(龙台的技术笔记),之后同步到简书和个人网站:xiaomage.info优化项目代码过程中发现一个千万级数据深分页问题,缘由是这样的库里有一张耗材MCS_PROD表,通过同步外部数据中台多维度数据,在系统内部组装为单一耗材产品,最终同步到ES搜索引擎MySQL同步ES流程如下:通过定时任务的形式触发同步,比如间隔半天或一天的时间频率同步的形式为增量同步,根据更新时间的机制,比如第一次同步查询>=1970-01-0100:00:00.0记录最大的更新时间进行存储,下次更新同步以此为条件以分页的形式获取数据,当前页数量加一,循环到最后一页在这里问题也就出现了,MySQL查询分页OF

记录线上服务出现MySQL死锁的排查过程

死锁原因MySQL中的锁种类繁多,并且MySQL自带死锁检测机制。虽然正常的业务开发中很难遇到死锁的情况,但是最近团队里的一个服务它真的出现了deadlock!!!遇事不慌,对于别人提的bug或者问题,我们首先确认是不是这样,再来考虑怎么办。所以,我让运维把相关服务日志打包发给我,这里截取一段:[2022-04-2013:02:46.360][http-nio-8080-exec-88][ERROR][atcom.cmonelink.osms.cnpnplatform.exception.CustomExceptionResolver.handleException(CustomExcepti

记录线上服务出现MySQL死锁的排查过程

死锁原因MySQL中的锁种类繁多,并且MySQL自带死锁检测机制。虽然正常的业务开发中很难遇到死锁的情况,但是最近团队里的一个服务它真的出现了deadlock!!!遇事不慌,对于别人提的bug或者问题,我们首先确认是不是这样,再来考虑怎么办。所以,我让运维把相关服务日志打包发给我,这里截取一段:[2022-04-2013:02:46.360][http-nio-8080-exec-88][ERROR][atcom.cmonelink.osms.cnpnplatform.exception.CustomExceptionResolver.handleException(CustomExcepti

iOS线上崩溃追踪

极地冰原(加载图).jpg目录一、崩溃收集介绍二、第三方库收集崩溃信息三、原生收集崩溃信息四、崩溃信息符号化五、崩溃中断拦截一、崩溃收集介绍  App线上崩溃一直都是比较棘手的问题,尽管我们努力在开发与测试过程中检测与避免崩溃代码,但依然会在不同系统,不同网络环境与不同的使用方式中出现特殊情况。  面对崩溃情况的最好解决方式就是对崩溃的程序进行现场调试,显然这很难做到。所以我们只能收集App崩溃时产生的信息,通过对崩溃信息的解析来找到产生崩溃的原因,之后修复崩溃的代码并发布新的版本。  市面上对于崩溃信息收集有很多种方案,比如第三方的Bugly,友盟,KSCrash,plcrashreport

iOS线上崩溃追踪

极地冰原(加载图).jpg目录一、崩溃收集介绍二、第三方库收集崩溃信息三、原生收集崩溃信息四、崩溃信息符号化五、崩溃中断拦截一、崩溃收集介绍  App线上崩溃一直都是比较棘手的问题,尽管我们努力在开发与测试过程中检测与避免崩溃代码,但依然会在不同系统,不同网络环境与不同的使用方式中出现特殊情况。  面对崩溃情况的最好解决方式就是对崩溃的程序进行现场调试,显然这很难做到。所以我们只能收集App崩溃时产生的信息,通过对崩溃信息的解析来找到产生崩溃的原因,之后修复崩溃的代码并发布新的版本。  市面上对于崩溃信息收集有很多种方案,比如第三方的Bugly,友盟,KSCrash,plcrashreport