自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汪小哥

珍惜每一刻应得的感受,把人生充分的活足了它

  • 博客(436)
  • 资源 (11)
  • 收藏
  • 关注

原创 arthas 入门最佳实践

一、入门步骤1、安装https://arthas.gitee.io/install-detail.html上述命令会下载启动脚本文件 as.sh 到当前目录curl -L https://alibaba.github.io/arthas/install.sh | shoras.sh 启动curl -sk https://arthas.gitee.io/arthas-boot.jar -o ~/.arthas-boot.jar && echo "alias as.sh='ja.

2020-06-25 23:44:28 6284 6

原创 爱上Java诊断利器Arthas之Arthas idea plugin 的前世今生

一、背景爱上Java诊断利器Arthas之Arthas idea plugin 前世今生,arthas 对于小哥来说,已经不可分割了,在我的日常开发、线上问题排查中扮演了非常重要的角色。作为小开发的我,日常需要排查线上运营同学提的各种bug、各种线上问题诊断、日常运维、线上问题优化等等一堆的问题。在刚刚来公司前期是比较恐惧运维任务的,代码不熟悉、各种问题比较多…几乎崩溃的状态,运维的一周基本...

2020-03-29 21:48:08 7078 10

原创 巧用arthas 分析 java.lang.reflect.UndeclaredThrowableException 异常来源

通过对于异常的深入探究,跟踪了解到了实现原理, “工欲善其事,必先利其器"

2023-07-15 15:34:41 311

原创 AIGC 来帮我写个脚本

利用好AIGC的自动能容生成能力,为日常开发过程提速

2023-07-15 14:55:56 450

原创 从文件加密到到视频文件进度条播放揭秘

AES 文件加密 & 视频进度播放 & 块存储分段下载

2022-07-20 20:50:03 552 1

原创 skywalking plugin 开发初探 ONS plugin 实践

skywalking plugin 开发如此简单,有兴趣的了解看看针对阿里云ONS mq的实践

2022-04-16 22:25:18 3556

原创 mysql in 子查询无法使用索引全表扫描 慎用in

mysql 采坑 慎用in 子查询,mysql能用索引是依赖你给的条件能够确定一个具体的值或者一个范围值.

2022-03-21 19:23:59 4308 1

原创 git 迁移项目中某个目录到一个已经存在的项目

git 迁移项目中某个目录到一个已经存在的项目需求需求,一个多模块的项目要将其中的部分功能迁移到一个新的项目,带着提交记录一起迁移,新项目git 已经存在部分目录。核心需求就是想带着git 提交记录一起去。步骤1、克隆到自己本地git clone [email protected]:mybatis/spring-boot-starter.git目录list$ ls -l | grep 'mybatis'drwxr-xr-x 6 wangji staff 192 12 20 23:0

2021-12-20 23:26:28 1082

原创 一个入门级的利用线程池查询优化

1.背景一个简单的查询服务的优化,“并行”和“串行”,将一批查询到的任务进行for each的组装,组装数据会调用各种各样的服务(dubbo、redis、mysql)等等,这种情况下随意业务任务的增多、整体查询服务的时间线性增加,因此想着法子将“串行”的服务变为并行的,全部处理完成后将结果返回即可。任务信息 /** * 任务信息 */ @Data public static class TaskInfo { private Integer

2021-07-06 20:33:12 641 2

原创 maven deploy 400失败,二次上传maven source.jar包

1、问题mvn仓库关闭了redeploy, 经常会遇到一些400错误,其中一个原因是一次deploy动作会执行两次sources包的发布。原因是因为重复定义了maven-source-plugin插件,or 引入 maven-shade-plugin 导致source 执行了两次​2、解决办法开发去掉自己代码里的maven-source-plugin插件,maven-source-plugin,此时如果自身的pom里也在定义一份source插件,且groupid或者artifactid不一样的情

2021-05-24 18:21:26 1725

原创 牛叉了-arthas 热更新 mybatis mapper xml

测试环境能够热更新class 能否热更新mapper xml? arthas 群有同学提了这样的一个需求,必须满足满足arthas-idea-plugin 2.8 版本 https://plugins.jetbrains.com/plugin/13581-arthas-idea1、基本思路1.1 流程图1.2 实现效果 echo `redis-cli -h '127.0.0.1' -p 6379 get arthasIdeaPluginRedefineCacheKey_e00b5a9e-d9

2021-05-10 23:29:57 3295 2

原创 如何判断这个方法的调用来自dubbo consumer

这个是比较好玩的一个问题? 如何判断呢?1、Thread.nameThread.currentThread().getName().startsWith("DubboServerHandler")2、org.apache.dubbo.rpc.RpcContext.getContext() org.apache.dubbo.common.URL url = org.apache.dubbo.rpc.RpcContext.getContext().getUrl();if (url !=nul

2021-05-10 23:23:11 627 2

原创 框架来优雅解决重试-spring retry

重试的意义To make processing more robust and less prone to failure, it sometimes helps to automatically retry a failed operation, in case it might succeed on a subsequent attempt. Errors that are susceptible to this kind of treatment are transient in nature. F

2021-04-04 22:51:15 704 1

原创 Java用正则表达式获取特征字符串

1、正则表达式正则表达式是一个非常高深的艺术、在编程过程中无论你写没有写过,时刻也使用过相关的工具 比如shell 中的一些常见的grep 、less 等等工具。推荐一个非常好用的教程工具。https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md2、背景很久之前,需要实现一个功能 从一个字符串中获取到 特征字符串,这里使用案号作为例子(2020)浙0106民督28号-1将上诉的案号信息 提取为如

2021-02-20 16:21:38 1709

原创 .net 客户端开发 “粗体验”

一、背景最近有个.net 的 sdk的开发功能 ,将之前java 开发的迁移进去…好久没有写 c# 这个玩意,大学也没有类似的经历,而且是mac 环境 开发起来不是很舒畅,快捷键不是很熟悉…开发工具下载开发工具: https://docs.microsoft.com/zh-cn/visualstudio/mac/installation?view=vsmac-2019包管理NuGet第一个功能就是要使用http 的客户端,如何加入进来的问题 :http 客户端: https://www.n

2020-11-25 20:42:30 438 1

原创 arthas 获取spring被代理的目标对象

背景记得一次问题排查,通过ognl 获取到 spring aop 代理过的cglib 代理对象的原始对象获取问题,spring的静态static spring context 进行调用获取被代理的目标对象的问题,记得当事是通过内部的一个工具 代理对象中被代理的目标对象 类似这个方法,通过静态的方法进行调用.挺方便的,但是这个方法比较麻烦,不是所有的工程都有这个方法,如何通过工具化让大家都能使用,这里使用 ognl 表达式进行复原整个过程,方便使用。更多使用参考 Idea Plugin,最近会把这个功能集成

2020-08-13 12:41:45 2428

原创 spring 事务背后的故事

一、spring 事务配置声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另一种是基于 @Transactional 注解的方式。1.1 xml 声明 事务1.1.1 单一的对于目标类进行代理<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">

2020-07-09 23:47:28 805

原创 spring 事务采坑-xml注解 事务混用

为啥使用spring 事务会出现这么多坑?还是对于底层原理实现机制理解不够深刻导致。对于经常使用的东西,不仅仅要求能用,更多的还是需要知道其所以然。一、坑点分析1.1 this 调用 本类失效如果新启动一个事物 Propagation.REQUIRES_NEW 这样的标识,this的直接调用会由于没有走代理的逻辑失效.这一点的理解没有问题 AOP 的机制是实现事务的核心,分布式事务Seata 也是通过AOP去处理,不经过代理准导致事务失效。1.2 only public 方法事务有效这个不

2020-07-09 23:42:44 1772

原创 spring 注解 事务,声明事务混用--解决问题

Spring 事务 混用xml 事务和注解事务最好不要一起 坑太多了,一个aop中 存在两个 org.springframework.transaction.interceptor.TransactionInterceptor 而且各钟情况错中复杂,如果两个是 Propagation.PROPAGATION_REQUIRED,Propagation.REQUIRES_NEW 不同的顺序特别是异常产生的时候会造成不同的影响Propagation.PROPAGATION_REQUIRED -> Prop

2020-07-09 23:37:20 1150

原创 spring 注解 事务,声明事务共存 order 方案---有bug

一、背景spring 注解事务和声明事务共存下,出现一些奇怪的问题,声明事务不生效啦!本来对于业务异常不进行回滚,最终回滚啦,很是奇怪啊,调查了一下,进行了一些了解,最后才有这篇文章。参考: https://blog.csdn.net/feng27156/article/details/8740223二、配置1、修改之前的配置 <bean id="transactionManager" class="org.springframework.jdbc.dataso

2020-07-09 23:33:10 1019

原创 arthas 火焰图神器-async-profiler

一、async-profilerThis project is a low overhead sampling profiler for Java that does not suffer from Safepoint bias problem. It features HotSpot-specific APIs to collect stack traces and to track memory allocations. The profiler works with OpenJDK, Oracle

2020-06-23 23:17:17 9826 4

原创 用了这么多年的Spring 你还记得?

本文的阅读最好的方式结合代码一起看,在很久没有回顾的时候可能会忘记一些spring的扩展点,已经spring 到底怎么玩的?本文是作者了解spring 到工作的第四个年头 从实习开始2016年,这里做个总结,用了这么多,估计写着crud 忘了spring的奥秘了。一、yy一下Bean创建的过程首先得承认spring 这个太强大,一般的java开发者根本创造不出来这么强大的一个玩意,从扩展性和维护性(…不知道诞生多少年了,反正我一毕业就开始学习),程序员都是模仿动物,都是不断的在模仿中学习和进步,和小.

2020-06-22 23:34:17 2411

原创 几张图了解spring doGetBean

一、doGetBean 图例doGetBean 启程org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean实例化前预处理org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean(java.lang.String, org.springframework.beans.factory.support

2020-06-22 23:28:07 1703 3

原创 Dubbo泛化调用入门到精通

Dubbo 泛化调用、阿里的好舒服的泛化调用都是类似的功能。最近给同事排查一个dubbo-admin 控制台调用报错的问题的小研究,为此还给社区提了一个issue,具体可以查看链接 dubbo-admin 泛型参数测试 ClassNotFoundException 看了最新版本好像自动去掉了出现泛型<这样的信息通通干掉,不过没有发布release版本。 参考文档:使用泛化调用1、泛化调用1.1 概念泛化接口调用方式主要用于客户端没有 API 接口(泛化调用是指不需要依赖服务的二方包)及.

2020-06-03 00:07:30 6856 5

原创 看源码利器 --Translation 正则配置更好用

写个喜欢看源码的同学,这个分享是我的一个同事北京城分享给我的!感谢他哈哈,分享精神一直保持ing,这里介绍给大家,也是记录一下。1、有没有烦恼spring的英文注释因为注释中有html 格式的文档?全选翻译出来很那看的啊!十分的恶心,对于英文不咋地的翻译插件还是十分的由必要的!只选择命中的正则表达式的部分,去掉html格式的,这样看起来更加清爽。org.springframework.web.servlet.DispatcherServlet2、配置正则表达式\/\*\*|\/\/|\*\s.

2020-06-01 22:32:36 667 1

原创 Jdk默认线程池弱爆了 ?

看到好玩的、想了解的,记录一下一、ThreadExecutor 线程池1.1 ThreadExecutor 线程池执行逻辑从execute 方法的注释清晰得知,传统线程加入线程池执行过程分3步小于等于Coresize: 创建线程之行大于CoreSize 加入队列队列满且小于maxSize 有空闲线程使用空闲线程执行,没有的话,创建线程执行大于maxSize 拒绝策略执行public void execute(Runnable command) { if (comm.

2020-06-01 22:19:39 629 1

原创 Seata 分布式事务初体验

阿里技术(如何选择分布式事务解决方案?) https://mp.weixin.qq.com/s/2AL3uJ5BG2X3Y2Vxg0XqnQ## 起初看了这个分布式相关的信息,对于seata 有点想了解一下实现的精髓,之前公司内部也有大佬分享过seata 还不止一次的分享过 内部也实现了一个简单的分布式事务,借此机会了解一下这个鬼东西。 Seata (Simple Extensible Autonomous Transaction Architecture) AT (Automatic Transact.

2020-05-29 23:01:17 2184 2

原创 JdbcTemplate 香不香

简介似曾相识Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中,配置非常的简单。spring 的好处就是提供了很多非常方便的功能,这个和resttemplate 类似的,对于http请求的封装也是非常的好用,我也是经常的使用的。具体使用随便百度一下即可: https://www.cnblogs.c...

2020-04-21 19:52:35 568

原创 阿里开源那个牛X的问题排查工具Arthas,条件表达式+异步任务使用

问题只有特定的场景才会有bug ,如何排查bug?一天只出现一两次如何解决?使用场景条件表达式主要是用来过滤使用,比如某些场景只是在特定的参数才会出现,肯能会花费很多的时间去等待,这个时候可以使用条件表达式过滤 +异步任务使用须知在watch、trace、stack 等命令中都有条件表达式,不知道你是否用过哦!条件表达式的使用其实就是已知的信息进行逻辑运算(and or…等等),什...

2020-04-18 18:46:09 4036 8

原创 Enum Tools 减少枚举中重复的方法

背景最近修改项目的时候发现一些好东西,对于枚举的通用方法的处理,发现之前写的很多重复性的劳动,总体来说对于枚举的认识不够,对于这些特性的使用还不是非常的属性,编码这个东西,总在反思、学习中成长,这种小东西也是一种成长,别看微不足道,大规模推广使用起来,对于编码的统一度非常的友好的。实践几乎在系统的枚举中都是code、msg这样的枚举,非常的多!没有直接的利用Enum中的name,主要是语...

2020-03-09 22:50:10 1254

原创 Enum 枚举小记

枚举小记录随便写一个Day的枚举public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}编译一下javac Day.java反编译查看javap -private Day Compiled from "Da...

2020-03-09 22:47:11 451

原创 源码、问题排查技巧-Java Debug and Arthas

背景最近在做一个公司的项目,使用的是很老的webx框架,自己增加了一个接口死活通过路径访问无法获取到这个接口、总是返回404 not found,一脸蒙蔽了,但是是为什么?也去问了相关的同学,没有发现问题。本文就这个问题的排查经过进行简单的描述。使用工具IDEA Debugarthas idea plugin 、 arthas排查1、是不是代码没有发布上去?插件获取反编...

2020-03-01 14:08:01 1676

原创 Spring Boot 返回Content-Type解决方案

背景前端同学需要Content-Type 字段返回,根据文件的类型不同返回不同的类型;还有就是直接打开一个下载链接,对于Chrome这样的浏览器其实支持自适应预览的效果。https://tool.oschina.net/commons/ 这里的链接中有好多好多的Content-type的类型!拿到这个问题,之前的伙伴有写了几个if else 判断图片、文档等等,但是支持不是很全面、谁知道之后还...

2020-03-01 13:14:29 8274 1

原创 Java Agent 调试,Java agent debug

Java Agent 调试,agent debug一、简介Java agent 是在另外一个 Java 应用(“目标”应用)启动之前要执行的 Java 程序,这样 agent 就有机会修改目标应用或者应用所运行的环境。修改环境的时候做到对于项目中的代码没有入侵性,不需要修改老项目代码即可实现想要的能力,比如常见的skywoking,就是通过这样的方式实现的。比如这篇文章 通过修改字节码实现J...

2020-02-02 16:24:11 7180

原创 Java 远程debug

Java 远程debug一、remote debug何为远程debug呢?通常我们在开发过程中,都会将代码部署到服务中,这个时候QA 提出了一个bug,通过查看代码的逻辑发现问题十分的困难?一般情况下都是想着本地能不能复现一下,本地debug 调试一下;或者通过arthas 进行相关逻辑的诊断也是可以的。但是今天我们讲的是远程debug,意思就是直接调试linux 服务器上面的代码,在IDE...

2020-02-02 16:18:27 1654 3

原创 arthas idea plugin 插件,arthas 使用更加丝滑起来

一、背景目前Arthas 官方的工具还不够足够的简单,需要记住一些命令,特别是一些扩展性特别强的高级语法,比如ognl获取spring context 为所欲为,watch、trace 不够简单,需要构造一些命令工具的信息,因此只需要一个能够简单处理字符串信息的插件即可使用。当在处理线上问题的时候需要最快速、最便捷的命令,因此Idea arthas 插件还是有存在的意义和价值的。二、支...

2020-01-06 22:14:14 26514 20

原创 spring 之 ObjectPostProcessor

一、背景在学习spring security的时候,有了解过一下官方的文档,Post Processing Configured Objects 这个玩意,主要的意思。Spring Security 的 Java 配置不会公开其配置的每个对象的每个属性。这简化了大多数用户的配置。毕竟,如果每个属性都公开,用户可以使用标准 bean 配置。虽然有充分的理由不直接公开每个属性,但用户可能仍然需要...

2019-12-14 22:29:35 7600

原创 Spring Shell 源码分析

参考实例Java程序员的命令行工具spring-shell-源码解析-video一、起源1.1 原由为什么要使用spring shell,在公司中,发现同事使用scala 写了一个交互的命令行程序,其实就是scala自带的信,注册了函数,感觉使用起来挺方便的,为啥Java里面没有这样的使用东西!挺好奇的,我想使用一个接入简单方便,不要花费太多的时间,且我们要熟悉!最后发现spring...

2019-12-01 17:49:23 943 5

原创 Spring Shell 中文文档

spring shell官方链接 Version 2.0.0.RELEASE可以参考这篇文章的视频简介: spring shell Java命令行集成What is Spring Shell?不是所有的应用程序都需要一个花哨的 web 用户界面!有时,使用交互式终端与应用程序交互是完成工作的最合适方式。Spring Shell 允许您轻松创建这样一个可运行的应用程序,用户将在其中...

2019-11-30 21:39:44 6573

原创 Java程序员的命令行工具-spring shell 命令行,Arthas 线上运维

武当山命令行工具简介在使用arthas的时候,很多的命令记不住,比如arthas watch 后面需要添加一堆的参数,tarce 需要满足规范,我只想简单的使用,不想记住那么多,不想慢慢的看文档啊!因此简单的命令行能不能解决问题?可以的,就是一个简单的字符串处理,比如更好的给你复制到剪切板中,不是很方便?第二个需求,有些常见的命令无法记住,我想当个笔记本来使用这样可以?哈哈 !因此写了一个命令行...

2019-11-30 21:36:26 1315 1

idea项目livetemplate总结配置

idea 使用技巧总结,遇到的坑点总结,javadoc livetemplate 配置,对于开发spring项目很有帮助

2018-07-10

idea使用技巧总结

idea使用技巧总结 idea 使用过程中出现过的坑点,平常经常遇到的处理方式

2018-07-10

minio windows.exe

Minio 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 Minio是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

2018-06-10

idea PlantUML插件以及PlantUML画图需要生成图片的软件Graphviz

idea 插件 使用PlantUML快速绘图,包含idea需要的PlantUML插件以及Graphviz windows的安装包 使用参考https://blog.csdn.net/zxc123e/article/details/71837923

2018-04-14

Mycat权威指南.pdf

Mycat权威指南 对于分表分库有很多的介绍,有很多的认识,对于我们的学习很有好处哦

2018-01-07

Java 线程图形化理解

Java 线程图形化理解,可以方便的了解java线程的使用特点!解压开然后就可以直接的点击查看Java线程的显示效果

2018-01-07

live template

idea livetemplate的配置 C:\Users\JetWang\.IntelliJIdea2017.1\config\templates 下面配置的资源 http://note.youdao.com/share/?id=a3a547b16cf60e4184c1520727aa4f4d&type=note#/

2017-08-19

metronic__bootstrap后台模板

metronic__bootstrap后台模板 非常多的插件可以去了解很好用 很实用

2016-10-27

neon后台管理模板

网页后台管理模板

2016-10-27

atlant后台管理模板

后台管理模板 atlant

2016-10-27

ACM_STL_study_for_new_cord

stl acm study we can study well,very good so book!

2014-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除