硬核难度

个人博客

一次简单通用的压测调优实战

相比于网上教你如何使用ab、jmeter工具进行压测一个接口,本文更关注在压测调优的思路上。 明确思路 目的:提升单个接口的QPS(每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。) 工具:本文不关注工具的使用,简单起见,使用apache的ab工具 步骤:先测试并优化一个空接口(直接返回请求的接口),拿到一个极限QPS,然后分别引进Redis、MySQL的接口......

为团队构建DevOps体系

在开发过程中,如果团队没有基本的DevOps体系来保证应用的稳定,便捷的自动部署,规范的部署流程,优良的开发环境,那么除了开发效率很可能是极为底下之外,团队成员也怕是会怨声载道,更别提应用的健壮性了。 DevOps是什么 DevOps的定义众说纷纭,个人的理解是: 从狭义上来说是一套实践、方法、工具,是提高交付应用程序和服务能力的一组最佳实践,为了在保证高质量的前提下缩短系统变更从提交到......

从Java极速入门Go

本文适合有Java开发经验且想学习Go的同学,是一篇非常适合入门Go语言的教程,本文只会涉及部分Go的核心内容,不适合想系统学习Go的同学,但也提供了系统学习的方式。 Go语言简介 下面是对Go的简单介绍,可以先了解一下,如果有哪些暂时无法理解的可以先跳过,学完【极速入门】之后回头来看就会恍然大悟。 简介 Go是一门语法非常简单的开源编程语言,目的是让程序开发变得更有生产效率。 Go是一......

打上花火 完结!

不容易啊,为了这首歌,练了足足一个月 先上菜!吧,客官见笑了~ 缘分 一个月前的某日在刷抖音的时候突然刷到这首BGM,顿时被曲子所吸引,到网易云音乐上听完完整版之后更是惊叹女声与男声的绝妙融合,音乐无国界!当时就下定决心,要学会的第一首歌就是你啦。显然当时并没有意识到唱好这首歌的难度。 第一关:语言 本人当然不会日语。。也并不想学日语。。所以找到了《打上花火》的罗马音版本,但是百度知道上的......

系统设计面试题:综合考察面试者的大招

站在面试官的角度,如何设计一道系统面试题,如何考察面试者的一整套流程,以及相关解答 在高级程序员面试的过程中,系统设计是一个很可能被问到的一个问题,由于它能体现出面试者很多方面的能力,是一道非常考验综合素质的面试题,一直被面试官青睐。 比如:业务理解抽象能力、业务挖掘能力、沟通表达能力、高层系统设计能力、底层服务实现经验、全栈经验 下面用一个自己设计的非常简单的系统设计题来一起体会体会。本......

JVM调优入门(二):实战调优Parallel收集器

在调优JVM的时候,我们的目的是在一定的运行环境下提高吞吐量,降低最大停顿时间。这篇文章以Parallel收集器来进行一次调优实战。 测试环境:青云上海1区A - 性能型 - ubuntu 16.04 - 2核12G 我们要调的是什么? 本文就以我们一个项目的启动速度极慢的Jar包为动手目标,将提升启动速度为目的,那是不太可能的,因为GC的速度本来早就已经优化的很快了,所以提升启动速度的效......

JVM调优入门(一):基础知识

当Java程序性能达不到目标,且代码上的优化手段都已经穷尽时,通常需要调整垃圾回收器和JVM内存空间配置来进一步提高性能,这就是JVM调优。 在调优的时候,我们必须要知道调的是什么,为什么要这样调,这些跟基础知识密不可分。 比如要知道内存结构、垃圾收集机制、算法、收集器,还要知道如何从GC日志中得到调试的效果,那么本系列文章将带你回顾调优用到的JVM基础知识。然后实战调优一把,最后我会总结出......

Java生产环境下问题排查

在生产环境中,我们无法通过断点调试、新增log、可视化工具去立马查看当前的运行状态和拿到错误信息,此时,借助Java自带的命令行工具以及相关dump分析工具以及一些小技巧,可以大大提升我们排查问题的效率 运行参数 下面会列出一些常用且非常有效的命令以及参数来查看运行时Java程序的信息,从而辅助你了解程序运行状态。还有大量可用的功能由其他参数提供,自行参阅oracle文档 查看JVM参数 ......

独自带大一个功能模块是怎样的体验

最近被安排了,要实现一个脚本任务功能,还要能让已存在的模块复用上。现在来完整的记录和总结一下历时两个月完成它的过程,提供给自己复习以及初学者入门。 背景 本项目是一个云平台异构纳管平台,愿景是将客户所使用的所有的云平台的资源通过我们的平台管理起来,同时提供部门管理功能方便权限控制。这次要实现的功能是:脚本任务管理。 你可以访问nicescale来感受一下类似的功能。脚本任务管理的确看起来不......

手把手教你实现一个基于Redis的分布式锁

源码在此:https://github.com/xbox1994/distributed-lock-redis 简介 分布式锁在分布式系统中非常常见,比如对公共资源进行操作,如卖车票,同一时刻只能有一个节点将某个特定座位的票卖出去;如避免缓存失效带来的大量请求访问数据库的问题 设计 这非常像一道面试题:如何实现一个分布式锁?在简介中,基本上已经对这个分布式工具提出了一些需求,你可以不着急看......