摘要: 起因 6.1大促值班发现的一个问题,一个rpc接口在0~2点用户下单高峰的时候表现rt高(超过1s,实际上针对性优化过的接口rt超过这个值也是有问题的,通常rpc接口里面即使逻辑复杂,300ms应该也搞定了),可以理解,但是在4~5点的时候接口的tps已经不高了,耗时依然在600ms~700ms之间阅读全文
posted @ 2019-06-09 23:14 五月的仓颉 阅读(1617) 评论(6) 编辑
摘要: 2018.5.31~2019.5.31,一段精彩的旅程,渡过了在阿里一年的时光,这段时光有快乐、有焦虑、有迷茫、更有思考,思考的是自己过去的种种不足、思考的是一些现在看来之前错误的想法、思考的是如何成为一个更好的技术人,将这一些思考分享给看到这些文字的每个人,共勉。 应当如何面对线上的异常/故障 看阅读全文
posted @ 2019-05-31 10:14 五月的仓颉 阅读(4533) 评论(35) 编辑
摘要: 前言 来菜鸟这个大家庭10个月了,总得来说比较融入了环境,同时在忙碌的工作中也深感技术积累不够,在优秀的人身边工作必须更加花时间去提升自己的技术能力、技术视野,所以开一个系列文章,标题就轻松一点叫做最近学习了XXX吧,记录一下自己的学习心得。 由于最近想对系统进行一个小改造,想到使用责任链模式会非常阅读全文
posted @ 2019-04-14 23:03 五月的仓颉 阅读(2157) 评论(16) 编辑
摘要: 原文链接https://www.cnblogs.com/xrq730/p/9280404.html,作者博客园 五月的仓颉,转载请注明出处,谢谢 HTTP协议 HTTP协议大家都很熟悉了,开始本文之前,首先简单回顾一下HTTP协议。 HTTP协议是建立在TCP协议上的应用层协议,协议的本质是请求 应阅读全文
posted @ 2018-07-08 22:09 五月的仓颉 阅读(7518) 评论(8) 编辑
摘要: 原文地址https://www.cnblogs.com/xrq730/p/9159586.html,原文作者博客园 五月的仓颉,转载请注明出处,谢谢 前言 阿里面试成功已经过去一个月了,入职也已经过去十多天了,趁着周末写点东西和大家进行一下分享,本文会写到以下的内容: 个人一路走来的经历 未来的一些阅读全文
posted @ 2018-06-11 22:29 五月的仓颉 阅读(26817) 评论(177) 编辑
摘要: 原文链接:http://www.cnblogs.com/xrq730/p/8944539.html,转载请注明出处,谢谢 本文目录 上一篇文章以认识Redis为主,写了Redis系列的第一篇,现在开启第二部分的学习,在本文中,我们将看到以下内容: Redis数据结构String、Hash、List、阅读全文
posted @ 2018-05-01 22:14 五月的仓颉 阅读(8796) 评论(13) 编辑
摘要: 原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中也一直在用Redis,感觉是时候对过往Redis的所学进行一次系统性的总结。《Redis从入门到精通阅读全文
posted @ 2018-04-25 22:23 五月的仓颉 阅读(8656) 评论(13) 编辑
摘要: 关于个人公众号 好久之前网友就问我有没有个人公众号,一直没有时间弄,终于今天开通了一下个人的公众号,置顶一篇随笔,给个人公众号打一下广告: (1)所有的技术文章,都会在博客园发布,公众号只发布一些个人认为写的比较好的文章 (2)博客园偏向技术,公众号偏向和大家分享一些技术之外的话题和一些个人经历,主阅读全文
posted @ 2018-04-15 15:19 五月的仓颉 阅读(3259) 评论(8) 编辑
摘要: 回顾TCP粘包/拆包问题解决方案 上文详细说了TCP粘包/拆包问题产生的原因及解决方式,并以LineBasedFrameDecoder为例演示了粘包/拆包问题的实际解决方案,本文再介绍两种粘包/拆包问题的解决方案:分隔符和定长解码器。在开始本文之前,先回顾一下解决粘包/拆包问题的几个方式: 消息长度阅读全文
posted @ 2018-04-07 19:59 五月的仓颉 阅读(1157) 评论(0) 编辑
摘要: 什么是粘包、拆包 粘包、拆包是Socket编程中最常遇见的一个问题,本文来研究一下Netty是如何解决粘包、拆包的,首先我们从什么是粘包、拆包开始说起: 一个完整的包可能会被TCP拆分为多个包进行发送(拆包) 多个小的包也有可能被封装成一个大的包进行发送(粘包) 这就是所谓的TCP粘包与拆包 下图演阅读全文
posted @ 2018-04-07 17:04 五月的仓颉 阅读(2276) 评论(0) 编辑
摘要: 为什么使用Netty Netty是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性、可扩展性在同类框架中都是首屈一指的,它已经得到了成百上千的商用项目的证明。对于为什么使用Netty这个话题,我们先看一下使用原生的NIO有什么缺点: NIO的类库和API繁杂,使用麻烦,需要熟练掌握Sel阅读全文
posted @ 2018-04-05 21:16 五月的仓颉 阅读(3435) 评论(3) 编辑
摘要: 被废弃的持久代 想起之前面试的时候有面试官问起过我一个问题:Java 8为什么要废弃持久代即Metaspace的作用。由于当时使用的Java 7且研究重心不在JVM上,一下没有回答上来,今天突然想起这个问题,就详细总结一下这个问题。 首先我们看一张JVM内存布局的图: 注意到里面有一块METHOD 阅读全文
posted @ 2018-04-01 21:11 五月的仓颉 阅读(5086) 评论(12) 编辑
摘要: 为什么使用logback 记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点: 内核重写、测试充分、初始化内存加载更小,这一切让logb阅读全文
posted @ 2018-04-01 00:02 五月的仓颉 阅读(8757) 评论(6) 编辑
摘要: 简单回顾门面模式 slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式, 门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为: 门面模式的核心为Facade即门面对象,门面对象核心为几个点: 知道所阅读全文
posted @ 2018-03-22 23:03 五月的仓颉 阅读(12089) 评论(8) 编辑
摘要: 原文地址http://www.cnblogs.com/xrq730/p/5260294.html,转载请注明出处,谢谢! 前言 很久没写文章,也有博友在我的有些文章中留言,希望我可以写一些文章,公司项目一直很忙,但是每天也尽量腾出一些时间写一些东西,主要针对工作中一些常用的知识点系统性的梳理(可能我阅读全文
posted @ 2018-03-14 22:45 五月的仓颉 阅读(7665) 评论(1) 编辑
摘要: Linux目录图 进入根目录,使用ll命令看一下Linux整个根目录图: 这里面所有的目录都是买完服务器之后最初始的目录,没有进过任何加工。Linux以树的结构组织所有目录,用一张图表示一下Linux的目录结构: 下面,来挨个认识一下每一个目录及其作用。 bin目录 bin是binary的缩写,里面阅读全文
posted @ 2017-12-26 22:49 五月的仓颉 阅读(1979) 评论(3) 编辑
摘要: 公平模式ReentrantLock实现原理 前面的文章研究了AbstractQueuedSynchronizer的独占锁和共享锁,有了前两篇文章的基础,就可以乘胜追击,看一下基于AbstractQueuedSynchronizer的并发类是如何实现的。 ReentrantLock显然是一种独占锁,首阅读全文
posted @ 2017-07-03 09:28 五月的仓颉 阅读(2548) 评论(8) 编辑
摘要: 共享模式acquire实现流程 上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchronizer共享模式acquire的实现流程。连续两篇文章的学习,也可以对比独占模式acquire和共享模阅读全文
posted @ 2017-07-02 21:16 五月的仓颉 阅读(2184) 评论(13) 编辑
摘要: JVM的四种引用状态 在Java虚拟机5:Java垃圾回收(GC)机制详解一文中,有简单提到过JVM的四种引用状态,当时只是简单学习,知道有这么一个概念,对四种引用状态理解不深。这两天重看虚拟机这部分的时候,写了很多例子详细研究了一下JVM的几种引用,对于JVM的引用理解加深了不少,因此总结写一篇文阅读全文
posted @ 2017-06-27 22:01 五月的仓颉 阅读(4068) 评论(9) 编辑
摘要: 关于AbstractQueuedSynchronizer JDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能。关于java.util.concurrent包我总结如下: AbstractQueuedSynchronizer是并发类诸如Reentra阅读全文
posted @ 2017-06-23 00:09 五月的仓颉 阅读(3152) 评论(18) 编辑