自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stay hungry ! stay foolish!

不要告诉别人你的计划,只需要让别人知道结果就行了。

  • 博客(1508)
  • 资源 (21)
  • 收藏
  • 关注

原创 JDK8 Date工具类

JDK8 Date工具类

2022-06-18 13:20:10 251

原创 浏览器访问管理服务器超时导致请求重试问题分析

背景管理后台上有个批量退款的功能,每次操作退两百笔退款订单,大概会执行4分钟的时间。发现相同的参数和请求路径,每隔两分钟进行重试,总共重试了四次,不像是人为的原因。分析1、谷歌浏览器超过2分钟没有收到服务方的请求,就会进行断开连接。这时就猜测考虑是不是业务处理逻辑太久了,导致浏览器长时间没有接受到后台的返回结果,自动重复提交了记录。3、之前是在管理项目上出现的问题,利用arthas注入程序执行时睡眠10分钟的代码,复现了。重新发起请求原因HTTP/1.1 的一处规范 :If a

2022-04-11 18:35:30 6546

原创 周期性的显示调用full gc

目录背景排查cxf问题解决方案背景服务gc日志每十小时执行一次full gc,如下:2022-03-30T05:04:36.659+0800: 1188030.244: [Full GC (System.gc()) 2022-03-30T05:04:36.659+0800: 1188030.244: [CMS: 262271K->253610K(917504K), 0.6862360 secs] 298618K->253610K(1035520K), [Me

2022-03-30 22:24:37 832

原创 排查显示调用System.gc()方法的调用栈

背景项目里查看gc日志发现是由于显式调用了System.gc()导致的full gc, 需要排查该方法的调用栈。Arthas的下载与使用可以看之前写的文档:利用Arthas进行简单的故障注入_韩师学子--小倪的博客-CSDN博客执行第一步,由于java.lang.System是JDK自带的类,Arthas默认关闭了对JDK类的自带类的增强,需要通过options命令打开options unsafe true第二步,使用stack命令,观察谁调用了java.lang.Syst.

2022-03-29 23:55:40 517

原创 故障演练--使用 ChaosBlade 进行混沌实验

一、ChaosBlade 简介ChaosBlade 是阿里开源的混沌工程品牌,包含 chaosblade 工具和 chaosblade-box 平台等项目。ChaosBlade 按照混沌工程的思想,将故障抽象成了一个个实验,并按照科学实验的方法对其过程进行组织。chaosblade 工具支持了大量的故障场景和丰富的命令参数,能够很方便地对常见故障场景进行实验。二、部分 JVM 实验介绍相比于 CPU 使用率飙升等基础设施相关故障导致的系统不稳定,我们的关注点目前更加集中在:系统所依赖的两方或三方

2021-12-04 14:41:31 3629 3

原创 Jmeter压测

目录一、Jmeter基本使用二、请求报文的数据来源三、请求报文构造固定值取值方式动态值取值方式签名取值方式四、分布式压测Master配置Slave配置 五、Q&A一、Jmeter基本使用这里不做详细介绍,可参考:Jmeter官网(Apache JMeter - User's Manual: Getting Started)Jmeter 入门教程(https://www.jianshu.com/p/6bc152ca6126)使...

2021-12-04 12:15:06 640

原创 redisClient的soTimeout偶尔不生效分析

目录背景源码分析参考背景为了方便观察redis的调用情况,接入了redis通用访问组件。项目redis设置socketTimeout时间为200ms,配置最大重试次数为1次。发现项目在调用redis时,有一些单个set语句会达到1s以上的耗时,然后也能拿到执行命令的结果。而根据参数配置,即便再重试一次,也最多400ms就超时了。以下是11月25日api中的两个耗时日志:RedisClusterClientProxy.printRunCommandTimeoutLog:87 re

2021-11-28 12:49:18 1326

原创 基于Redis实现延时消息队列

基本实现相关接口import java.util.Optional;public interface IQueue<E> { boolean add(E item); Optional<E> get(); Optional<E> get(int timeout); long size();}抽象类import com.google.gson.Gson;import org.apache.co...

2021-11-06 15:48:23 1087

原创 Redis分布式锁实现

目录一、高效分布式锁二、Redis分布式锁的缺点三、使用Jedis set命令以及Lua脚本方式实现分布式锁四、使用Redisson+RLock实现分布式锁 锁互斥机制watch dog自动延期机制可重入加锁机制锁释放机制相关实现 优缺点五、参考一、高效分布式锁1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。2、防止死锁在分布式高并发的条件下,比如有个线程获得...

2021-11-06 12:21:35 1267

原创 Maven的 settings.xml 解析

settings.xml介绍 从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。 并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。 settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。settings.xml文件一般存在于两个位置: (1)全局配置: ${M2_HOME}/conf/settings.xml; (2)用户配置: user.hom...

2021-10-01 12:15:01 612

原创 MySQL 5.7 虚拟列 (virtual columns)

Generated Column在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column。前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。Stored类型的generated columns可以用作一个物化缓存,用于复杂的条件,这些条件在运行时计算成本

2021-09-05 17:57:08 1578

原创 Mysql的新特性--MRR

MRR的全称是Multi-Range Read Optimization,是优化器将随机IO转化为顺序IO以降低查询过程中IO开销的一种手段。MRR原理执行一个范围查询:mysql > explain select * from stu where age between 10 and 20;+----+-------------+-------+-------+------+---------+------+------+-------------------...

2021-05-31 00:27:07 749

原创 debug mysql源码 --搭建环境

操作系统:windows10, 期间搭建时出现太多问题,很恶心。准备软件visual studio2015: 下载bison:下载,配置好环境变量,将安装的地址和bin路径配置到Path里去mysql5.7.25:下载,选择好版本,选中source codecmake: 下载配置windows SDK8.1visual studio 2015 安装部署后,记得配置好windows SDK8.1,不然cmake编译时会报错。不会配置的,可以选择新建一个c++项目,软件会自动提示是...

2021-03-21 13:52:33 294

原创 利用Arthas进行简单的故障注入

目录一、概念二、整体逻辑三、相关文档四、故障注入实践一、概念Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。二、整体逻辑Arthas的整体逻辑也是在 Java 的Instrumentation基础上来实现,所有在加载的类会通过Agent的加载, 通过addTransforme...

2021-03-17 19:13:22 1818

原创 Roaring64Bitmap实践

maven依赖<dependency> <groupId>org.roaringbitmap</groupId> <artifactId>RoaringBitmap</artifactId> <version>0.9.0</version></dependency>测试一:优化前后,读写文本期间,序列化与反序列化的耗时import o...

2021-01-24 11:10:01 3135

原创 MyBatis动态SQL(注解版)

@InsertProvider实现批量插入数据1.mySql 批量插入数据库语句格式:INSERT INTO[表名]([列名],[列名])VALUES([列值],[列值])),([列值],[列值])),([列值],[列值]));例如:INSERT INTOitems(name,city,price,number,picture)VALUES('耐克运动鞋','广州',500,1000,'003.jpg'),('耐克运动鞋2','广州2',500...

2020-12-10 20:08:38 5544

原创 Hikari 数据库连接池配置详解

Hikari 数据库连接池配置详解基本配置<!-- Hikari Datasource --> <bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown"> <property name="driverClassName" value="${jdbc.dr...

2020-10-18 11:07:48 3794

原创 数据库连接池

数据库连接池目录一、常用的数据库连接池二、基本配置  三、关键配置四、性能配置五、各个连接池的属性说明  1)DBCP 属性说明表2)C3P0 属性说明表3) DRUID 属性说明表一、常用的数据库连接池1)DBCP  DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。2)c3p0...

2020-10-07 10:57:04 838

原创 MongoTemplate的实战

MongoTemplate的实战一、Mavn依赖: <!--spring data jars--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> </depe.

2020-08-08 11:06:12 2879

原创 WechatPay-API-v3接口规则

WechatPay-API-v3接口规则1、官方文档https://wechatpay-api.gitbook.io/wechatpay-api-v3/2、下面是Java 接入过程:第一步: 阅读微信支付分给的接口规则 说明: https://wechatpay-api.gitbook.io/wechatpay-api-v3/第二步: 微信支付API v3要用第三方CA的证书 所以涉及到 API证书升级新接入商户请参考什么是API证书?如何获取API证书?。已经接入并使用微信..

2020-06-20 15:22:21 6899 2

原创 Java 8 stream练习

Java 8 stream练习Mapmap 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);// 获取对应的平方数List<Integer> squaresList = numbers.stream(...

2020-04-12 21:44:07 359

原创 redis的应用场景

redis的应用场景目录1、充值订单超时队列2、缓存系统3、计数器4、消息队列系统5、Bitmap6、HyperLogLog7、list集合的使用8、hash的使用9、sunionstore1、充值订单超时队列创建充值订单时,将订单号chargeOrderId、账号信息id、超时开始时间timeou...

2020-03-03 21:02:49 546

原创 Redis缓存雪崩、穿透、击穿、降级、预热、更新和限流

Redis缓存雪崩、穿透、击穿、降级、预热、更新和限流目录关键词解释缓存雪崩缓存穿透缓存击穿缓存降级缓存预热缓存更新限流关键词解释缓存:将数据库的数据也在内存存入一份,使请求可以直接访问内存,无法再次访问数据库。降级:就是在高并发高负载情况下,选择动态的关闭一下不重要的服务,拒绝访问等,来为重要的服务节省资源,比如电商平台秒杀当天可关闭推荐等...

2020-01-21 15:45:36 995

原创 Java性能调优七种武器

Java性能调优七种武器目录JDK命令行Eclipse Memory AnalyzerJMX - Jconsole, VisualVMBtraceFlight Recorder Java Mission ControlJProfiler火焰图线上服务有时候我们会碰到下面这些问题: OutOfMemoryError,...

2019-12-16 20:54:36 440

原创 海量数据处理(Set、BitMap、HyperLogLog、BloomFilter)

海量数据处理(Set、BitMap、HyperLogLog、BloomFilter)目录SetBitMap(由bitSet来实现的)HyperLogLogBlommFilter综上所述海量数据处理:基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对...

2019-04-20 22:24:49 1591

原创 IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)

IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)转载:https://blog.csdn.net/kingshown_WZ/article/details/46423771概念:1. 概述 IP地址:人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址,通过IP地址就可以访问到每台主机。...

2018-09-19 09:34:01 47736 8

原创 2369. 检查数组是否存在有效划分

数组可以划分成子数组 [4,4] 和 [4,5,6]。如果获得的这些子数组中每个都能满足下述条件。这是一种有效划分,所以返回 true。,你必须将数组划分为一个或多个。1、尝试使用递推,出现运行超时。,则可以称其为数组的一种。存在一种有效划分,返回。该数组不存在有效划分。2、使用动态规划解决。

2024-03-01 13:28:41 100

原创 2673. 使二叉树所有路径值相等的最小代价

两条路径已经有相等的路径值,所以不需要执行任何增加操作。总共增加次数为 1 + 3 + 2 = 6。每次操作,你可以将树中。从根到叶子的每一条路径值都为 9。树中每个节点都有一个值,用下标从。里面节点的数目,节点编号从。都有两个孩子,分别是左孩子。- 将节点 4 的值增加一次。- 将节点 3 的值增加三次。- 将节点 7 的值增加两次。需要执行增加操作多少次。,树中每个非叶子节点。你的目标是让根到每一个。

2024-02-28 13:03:14 296

原创 235. 二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]6节点2和节点8的最近公共祖先是6。2节点2和节点4的最近公共祖先是2, 因为根据定义最近公共祖先节点可以为节点本身。

2024-02-26 12:40:28 302

原创 2583. 二叉树中的第 K 大层和

层次遍历,将每层结果汇总,再进行排序,获取第k大的和。,如果两个节点与根节点的距离相同,则认为它们在同一层。大的层和(不一定不同)。第 2 大的层和等于 13。给你一棵二叉树的根节点。最大的层和是 3。

2024-02-23 13:02:21 305

原创 889. 根据前序和后序遍历构造二叉树

是同一棵树的后序遍历,重构并返回二叉树。如果存在多个答案,您可以返回其中。值的二叉树的前序遍历,

2024-02-22 13:22:45 350

原创 106. 从中序与后序遍历序列构造二叉树

后序遍历的数组最后一个元素代表的即为根节点。可以利用已知的根节点信息在中序遍历的数组中找到根节点所在的下标,然后根据其将中序遍历的数组分成左右两部分,左边部分即左子树,右边部分为右子树,针对每个部分可以用同样的方法继续递归下去构造。可以理解为在后序遍历的数组中整个数组是先存储左子树的节点,再存储右子树的节点,最后存储根节点,如果按每次选择「后序遍历的最后一个节点」为根节点,则先被构造出来的应该为右子树。:这里有需要先创建右子树,再创建左子树的依赖关系。是二叉树的中序遍历,

2024-02-21 13:45:00 339

原创 590. N 叉树的后序遍历

方法一中利用递归来遍历树,实际的递归中隐式利用了栈,在此我们可以直接模拟递归中栈的调用。在后序遍历中从左向右依次先序遍历该每个以子节点为根的子树,然后先遍历节点本身。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值。给定一个 n 叉树的根节点。分隔(请参见示例)。

2024-02-19 11:33:53 357

原创 429. N 叉树的层序遍历

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。直接进行遍历,用临时变量保存所有下一层节点。给定一个 N 叉树,返回其节点值的。(即从左到右,逐层遍历)。

2024-02-18 13:49:18 462

原创 windows10安装centos7虚拟机记录

安装说明手把手教你在win10搭建linux虚拟机_windows10安装linux虚拟机-CSDN博客CentOS 7网络无法连接CentOS 7网络无法连接_centos7的wifi显示抱歉发生村组.请联系软件提供商-CSDN博客图形化界面的安装CentOS 7图形化界面的安装 - 掘金安装gityum -y install git安装gocentos 下安装go环境 - 掘金jetbrains安装centos中安装goland及配置(其他je

2024-01-17 10:51:36 364

原创 82. 删除排序链表中的重复元素 II

删除原始链表中所有重复数字的节点,只留下不同的数字。给定一个已排序的链表的头。

2024-01-15 13:48:27 374

原创 2719. 统计整数数目

总共有 11 个整数的数位和在 1 到 8 之间,分别是 1,2,3,4,5,6,7,8,10,11 和 12。所以我们返回 11。数位和在 1 到 5 之间的 5 个整数分别为 1,2,3,4 和 5。所以我们返回 5。请你返回好整数的数目。答案可能很大,请返回答案对。

2024-01-15 13:06:59 365

原创 2645. 构造有效字符串的最少插入数

在 "b" 之前插入 "a" ,在 "b" 之后插入 "c" 可以得到有效字符串 ",你可以向其中任何位置插入 "a"、"b" 或 "c" 任意次,返回使。在每个 "a" 之后依次插入 "b" 和 "c" 可以得到有效字符串 "a。直接进行遍历字符串的每个字符,看能拼接成abc字符串时,还需要哪个字母。如果字符串可以由 "abc" 串联多次得到,则认为该字符串。word 已经是有效字符串,不需要进行修改。注意遇到ac时,只要多插个b就好。需要插入的最少字母数。

2024-01-11 09:29:44 416

原创 2696. 删除子串后的字符串最小长度

FCACDB" 中删除子串 "AB",得到 s = "FCACDB"。B" 中删除子串 "CD",得到 s = "FCAB"。你可以对此字符串执行一些操作,在每一步操作中,你可以从。" 中删除子串 "AB",得到 s = "FC"。,删除子串后,重新连接出的字符串可能会产生新的。方法一:水题,循环执行删除对应字母的流程即可。子串,返回可获得的最终字符串的。可以证明 2 是可获得的最小长度。无法执行操作,字符串长度不变。最终字符串的长度为 2。英文字符组成的字符串。通过执行操作,删除所有。

2024-01-10 09:49:58 374

原创 1944. 队列中可以看到的人数

他右边另一个人的条件是这两人之间的所有人都比他们两人。第 0 个人能看到编号为 1 ,2 和 4 的人。第 2 个人能看到编号为 3 和 4 的人。第 5 个人谁也看不到因为他右边没人。第 1 个人能看到编号为 2 的人。第 3 个人能看到编号为 4 的人。第 4 个人能看到编号为 5 的人。个人在他右侧队列中能。

2024-01-05 13:07:09 396

TXT全本小说下载工具V5.0绿色版

全本小说下载器是一款下载全集小说的利器,在搜索框输入你需要的书名或作者名称,然后点击搜索,得出结果后,鼠标右键下载即可。这样就不用在线看说明,可以直接离线看小说,是小说明爱好者必备工具

2021-04-28

Thrift-0.5.exe

windows版本安装用的

2019-02-25

repo资源下载

repo资源, 当连接无法下载时,可以试试手动放置安装。

2019-02-21

EZDML_2神器

很好用的工具,可以去瞄瞄我的博文。https://blog.csdn.net/xiao__jia__jia/article/details/85256841

2018-12-26

整合了网上大多数jQuery面试题及答案

整合了网上大多数jQuery面试题及答案

2018-10-08

js实现淘宝地址更改的json文本

js实现淘宝地址更改,三级联动。 我博客也有关其实现的博文。

2018-10-04

Python-3.6.6.tar.gz

Python-3.6.6.tar.gz 官网的下载速度是贼慢

2018-08-21

尚硅谷SpringBoot视频教程(上)核心技术篇,(下)整合篇

尚硅谷SpringBoot视频教程(上)核心技术篇,(下)整合篇 尚硅谷SpringBoot视频教程(上)核心技术篇,(下)整合篇 不容错过

2018-06-23

黑马程序员《Java自学宝典》源代码

黑马程序员《Java自学宝典》源代码黑马程序员《Java自学宝典》源代码

2018-06-14

2013年-2017蓝桥杯决赛题.rar

蓝桥杯国赛题,看看以前的题,这次国赛加油!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2018-05-02

2018-蓝桥杯省赛-Java语言大学B组

蓝桥杯的试题,刚考了,拿了个省二,文件开头有惊喜哦。!!!值得下载。

2018-05-02

2017年最新下半年软件设计师【上午+下午】试题及参考答案及详解和视屏笔记

下载完,需要视频资源的私我,发给你们!考试很容易,备考方向做好,一个月的时间就行,分分钟高分通过!

2018-04-18

shiro_入门教程

shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程

2018-04-02

李炎恢Bootstrap讲义笔记

李炎恢Bootstrap讲义笔记 李炎恢Bootstrap讲义笔记 李炎恢Bootstrap讲义笔记

2018-02-26

james_javamail邮件服务学习

james_javamail邮件服务学习james_javamail邮件服务学习

2018-02-26

kindEditor使用说明书

kindEditor使用说明书 kindEditor使用说明书 kindEditor使用说明书 kindEditor使用说明书

2018-02-24

acm各种算法的解析

图论,数论,数据结构,计算几何,组合数学相关,数值分析等各种算法的分析和理解

2018-01-29

杭电acm上课课件

涉及各种算法的讲解,比如(二分匹配,背包专题,筛选法,简单数学题,贪心算法,递推求解,动态规划,并查集,母函数,搜索,组合博弈等入门算法)

2018-01-29

例年软件设计师考试真题解析(已经考过了)

整理不易,放心下载!整理不易,放心下载!整理不易,放心下载!整理不易,放心下载!整理不易,放心下载!整理不易,放心下载!整理不易,放心下载!

2018-01-09

计算机网络期末复习资料

里面含有几套试卷的答案和课本课后答案,考试重点知识点整理

2018-01-05

空空如也

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

TA关注的人

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