自定义博客皮肤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!

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

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

原创 JDK8 Date工具类

JDK8 Date工具类

2022-06-18 13:20:10 547

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

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

2022-04-11 18:35:30 9444 2

原创 周期性的显示调用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 1174

原创 排查显示调用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 1119

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

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

2021-12-04 14:41:31 5620 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 1176

原创 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 1792

原创 基于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 1451

原创 Redis分布式锁实现

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

2021-11-06 12:21:35 2034

原创 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 1108

原创 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 3004

原创 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 1361

原创 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 535

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

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

2021-03-17 19:13:22 2500

原创 Roaring64Bitmap实践

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

2021-01-24 11:10:01 4920 1

原创 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 8394 1

原创 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 4698 1

原创 数据库连接池

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

2020-10-07 10:57:04 1028

原创 MongoTemplate的实战

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

2020-08-08 11:06:12 3861

原创 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 8293 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 748

原创 redis的应用场景

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

2020-03-03 21:02:49 936

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

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

2020-01-21 15:45:36 1566

原创 Java性能调优七种武器

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

2019-12-16 20:54:36 791 1

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

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

2019-04-20 22:24:49 2037

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

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

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

原创 查看证书有效期

【代码】查看证书有效期(to do)

2026-02-11 09:41:35 222

原创 容器优雅关闭从入门到精通:SIGTERM信号处理完全指南

性能监控与调优策略在生产环境中,持续监控系统性能是保障稳定性的关键。推荐使用 Prometheus 配合 Grafana 构建可视化监控面板,重点关注 API 响应延迟、GC 暂停时间及内存分配速率。定期分析 pprof 性能数据,定位热点函数设置告警规则,如 P99 延迟超过 200ms 触发通知使用 tracing 工具(如 OpenTelemetry)追踪请求链路配置管理最佳实践// 使用 koanf 加载环境变量和配置文件错误处理与日志规范。

2026-02-01 13:11:29 845

原创 SpringBoot 优雅停服

当外部流量请求到服务端接口执行业务逻辑的时候,若服务端此时执行关机 (kill),spring boot 默认情况会直接关闭容器(tomcat 等),导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。

2026-02-01 12:11:25 1031 1

原创 JVM SafePoint

后台服务部署到容器后,平台会对后台服务进行探测,但连续多次探测超时不通过时,会触发服务重启。应用出现GC请求,但所有线程迟迟不到齐,导致系统卡顿。这里解释一下,当需要GC时候,虚拟机会首先设置一个标志,然后等待所有线程进入Safepoint,但是不同线程进入Safepoint的时间点不一样,先进入Safepoint的线程需要等待其他线程全部进入Safepoint, 才会触发GC。

2026-01-16 19:59:33 756

原创 fastjson与gson的toString差异

这边进行对接外部渠道时,需要对json串进行加签,但是验签一直出错。原因是渠道用了fastjson来处理,我们系统用gson来处理。如果传入的 map 是 fastjson 的 JSONObject,就取出它内部真正的 Map,避免重复排序或丢失特性。是 fastjson 里专门负责“把任何 Map/JSONObject 写成 JSON 字符串”的。是 fastjson 提供的一个自定义。(顺序、过滤、值序列化、空值处理等)。fastjson的maven依赖。,后面迭代顺序即字典序。

2026-01-13 14:04:07 148

原创 tomcat9+的 Cookie 处理器遵循 RFC 6265 标准后的问题

Tomcat 9 把「默认 Cookie 处理器」换成了。默认 false → 出现。设成 true → 上面字符。全部落地成代码校验,

2025-11-26 22:41:17 521

原创 http status 400 bad request

http 请求,路径参数没有进行urlEncoded,出现报错。先把 0-127 号 ASCII 字符全部扫一遍。严格遵循RFC 7230和RFC 3986规范。更注重兼容性而非严格遵循RFC规范。|{}[]"\都属于特殊字符串。对URL字符的检查相对宽松。更注重安全性和标准符合性。HTTP 请求行解析入口。默认允许更多特殊字符。对特殊字符有严格限制。

2025-11-23 13:42:21 624

原创 http请求 header 头小写转化问题

2、如果客户端用 HTTP1.1 进行请求myService服务,nginx 不会动请求头的key, 原封转发给 myService服务,myService服务对应的tomcat容器,tomcat 也会自动转化为小写字母。如果允许 Content-Type / content-type / CONTENT-TYPE 三种写法,字典就要存三份,压缩率骤降,实现也复杂。HTTP/2 把所有头部字段名强制改成小写,并不是为了“更规范”,而是为了配合新引入的“头部压缩”机制(HPACK)。返回的永远是小写形式。

2025-11-23 12:03:35 880

原创 tcpdump + Wireshark:抓取nginx转发到服务的流量

功能与 Wireshark 等价,但;适合服务器、嵌入式、脚本化场景。它直接把网卡收到的拷贝到用户空间,可实时显示、过滤、保存成 pcap 文件,再供 Wireshark 离线分析。

2025-11-23 11:31:35 1101

原创 Java匹配特殊字符,并进行删除

Emoji表情是一种视觉符号,用于在数字通信中表达情感、想法或概念。Unicode字符:Emoji表情是基于Unicode标准创建的。Unicode是一个国际标准,用于为世界上几乎所有的字符和符号提供一个唯一的数字标识。代理对:对于需要超过16位编码的复杂Emoji,如一些动物、旗帜或特殊符号,它们会使用代理对来表示。代理对由一对16位的Unicode字符组成,一个高代理和一个低代理,共同表示一个32位的Unicode字符。复合字符:许多Emoji表情由多个Unicode字符组成,包括基本字符和变音符号。

2025-11-20 22:12:07 1050

原创 OceanBase 内存数据转储、合并说明

携程在春晚活动前关掉轮转合并,结果 3 个 Zone 并发合并,CPU 打到 90%,MySQL 业务 QPS 跌 30%,rt 涨 3 倍;后来把 enable_merge_by_turn 打开,并调低 compaction_low_thread_score=3,rt 回落到 1.2 倍[11]。:把 Mini/Mini+Minor+Major SSTable 做全局归并,生成全新的 Major SSTable,并清理删除/过期数据,资源消耗大,默认每日 02:00 一次,也可手动/自动触发。

2025-11-16 14:28:36 912

原创 OceanBase 写入限速源码解读

OceanBase 中的写入限速机制旨在控制系统中写入操作(一般写入操作包括插入、更新和删除等)的速率,目的是为了提高数据库系统的稳定性。本文主要通过以下 2 个参数来解释写入限速的实现机制。writing_throttling_trigger_percentage:设置写入速度的阈值百分比。当内存使用达到该阈值时,触发写入限速机制。默认值为 60,取值范围为 1 到 100(100 表示关闭写入限速)。

2025-11-16 14:10:36 918

原创 OceanBase 慢查询排查思路

本文汇总了项目实践中前辈的经验和笔者的理解,旨在帮助初学 OceanBase(以下简称 OB)的工程师,快速解决 SQL 执行缓慢等性能问题。当遇到性能问题时,很多工程师可能会感到无从下手,本文将根据关键日志提供多种分析方向,以加速问题排查。

2025-11-16 14:08:49 969

原创 OceanBase 常见异情况汇总

ANSI 和 ISO/IEC 基于 SQL 标准定义了,隔离级别 根据定义。一个事务曾经读到的某行数据,第一次查询c2的结果为1,再次查询由于其他事务修改了c2的值,因此c2的结果为2。只读,再次。

2025-11-16 12:47:02 1233

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

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

2018-04-18

Python-3.6.6.tar.gz

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

2018-08-21

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

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

2018-10-04

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

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

2018-05-02

李炎恢Bootstrap讲义笔记

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

2018-02-26

repo资源下载

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

2019-02-21

EZDML_2神器

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

2018-12-26

计算机网络期末复习资料

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

2018-01-05

Thrift-0.5.exe

windows版本安装用的

2019-02-25

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

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

2021-04-28

杭电acm上课课件

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

2018-01-29

acm各种算法的解析

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

2018-01-29

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

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

2018-06-14

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

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

2018-05-02

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

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

2018-06-23

shiro_入门教程

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

2018-04-02

james_javamail邮件服务学习

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

2018-02-26

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

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

2018-10-08

kindEditor使用说明书

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

2018-02-24

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

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

2018-01-09

空空如也

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

TA关注的人

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