鞠骞的博客

微移是一种心态!


  • 首页

  • 分类

  • 时间轴

  • 标签

  • 小伙伴们

  • 关于

Java 生产神器 BTrace

发表于 2019-04-26   |   分类于 Java   |     |   阅读次数

前言

  在《说说Java单元测试》文章中,强调了单元测试的重要性,也提倡大家一定要写单元测试,能帮我们筛选掉很多低级错误,找出一些没必要的bug,避免生产事故。单元测试通过后,我们开始集成,随着服务集成的日渐增多,业务逻辑也变得越来越复杂,在这样的前提下,解决bug就变得异常复杂。在本地环境中,我们可以通过日志分析 + debug的方式,进行排查解决,再不济,我们还可以开启远程调试进行解决。但当生产系统上出现了bug时,我们可不能开启远程调试,这样会造成线程阻塞,足以让生产系统爆炸的。那么,我们该怎么办呢?代码执行到哪一行了?我们两眼一抹黑,不知从何下手,真是一个悲伤的故事。当然了,我们也可以通过修改代码的方式新增日志,打印方法的入参,出参,上线,重启 … 直至问题得以解决。办法虽然原始,好在能解决问题,但其过程非常痛苦,让人精疲力尽,有很多朋友估计都有过这样的经历。现在回过头来想,如果有这么一个工具,在不修改代码,不重启应用,不上线的前提下,就能查看到代码执行到哪一行,查看某个方法的出参,入参,查看方法的耗时,是该有多好。今天要介绍的就是这么一个工具 - BTrace ( Github主页:https://github.com/btraceio/btrace)

阅读全文 »

Java 基本功 之 CAS

发表于 2019-04-20   |   分类于 Java   |     |   阅读次数

前言

  在Java并发编程中,我们经常使用锁对竞争资源予以并发控制,以解决资源竞争的问题。但无论是使用 Lock 还是 Synchronized,随着锁机制的引入,就不可避免的带来另一个问题,也就锁与解锁时的上下文切换,线程等待 等性能问题。现在回过头来看,在有些场景中,是否真的需要引入锁才能解决竞争资源共享问题?答案是否定的,在JDK源码中,也为我们实现了。就是今天要介绍的另外一种无锁方案-CAS,它大量应用于JUC 包中,也是atomic包中各类的底层原理,其重要行可想而知。

阅读全文 »

CORS跨域实践

发表于 2018-07-18   |   分类于 Java , 跨域 , 前端工程师   |     |   阅读次数

前言

ll列表

前言

  系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不少新的问题。其中跨域问题就成了第一只拦路虎。今天我们就来揭露一下这只老虎的真面目!

阅读全文 »

分享两个小问题

发表于 2018-07-15   |   分类于 Java , Linux , Ip   |     |   阅读次数

前言

  有好一段时间没有更新文章了,期间有好几次提起笔来。却又不知如何下手。那么,今天就来分享几个之前遇到的几个小问题。

(一) Linux上传文件后大小总是为0 kb大小

问题描述:无论是使用xftp工具,还是使用rz命令上传至Linux服务器中的文件大小总是为0。

阅读全文 »

说说面试那些事

发表于 2018-03-10   |   分类于 Life , 面试   |     |   阅读次数

图片展示

前言

  从事互联网行业的朋友都知道,每到(3-4月)这个时候。招聘网站,技术社区中的招聘信息显的格外热闹。因为有很多朋友都希望在这段『金三银四』的时期中给自己涨涨薪。趁着这个时期,我决定记录下面试的一些事情,分享给大家。如果能帮助到有需要的朋友,那就最好不过了!

阅读全文 »
12…12
鞠骞

鞠骞

微移是一种生活,分享是一种态度!

59 日志
27 分类
21 标签
© 2015 - 2019 鞠骞
由 Hexo 强力驱动
主题 - NexT.Mist