自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (9)
  • 收藏
  • 关注

原创 filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台

clickhouse,ClickVisual,kafka轻量级日志平台

2024-07-18 18:00:59 1204

原创 springboot整合sentinel接口熔断

sentinel熔断

2024-06-14 09:04:01 947 1

原创 springboot手动触发参数校验,service层调用参数校验

入参校验一般是在控制层通过javax.validation.constraints包下的规则注解如NotNull结合Valid与Validated实现,但是有时候我们的方法不提供给controller调用这时候就无法触发自动参数校验,为此我们可以通过不更改校验代码的前提下手动触发spring的参数校验。

2024-06-07 11:50:09 490

原创 springboot事务结合分布式锁超卖问题

商品销售扣减库存是常见的场景,考虑性能的可以使用redis存储库存进行扣减,并发小的也可以采用数据量库存占用记录实时计算方式,最近开发的功能由于并发量不大,考虑到实现简洁的因素,决定采用库存占用记录实时计算方式。

2024-05-24 15:39:13 444

原创 springboot lua检查redis库存

springboot调用lua

2024-05-07 09:11:19 385 1

原创 OpenResty,Nginx实现接口验签与黑名单控制

openresty,nginx,接口验签

2024-04-11 15:19:25 686

原创 rabbitmq死信交换机,死信队列使用

对于核心业务需要保证消息必须正常消费,就必须考虑消费失败的场景,rabbitmq提供了以下三种消费失败处理机制。

2024-04-02 17:53:34 709 1

原创 oracle分区范围修改与数据迁移处理

由于对应用上线后流量越来越大,原来的按年自动分区性能跟不上,因此决定改成按月自动分区,同时将原有分区数据重新迁移到新的分区。

2024-01-29 20:11:12 673

原创 googlecode.log4jdbc慢sql日志,格式化sql

无论使用原生JDBC、mybatis还是hibernate,使用log4j等日志框架可以看到生成的SQL,但是占位符和参数总是分开打印的,不便于分析,显示如下的效果:googlecode Log4jdbc 是一个开源 SQL 日志组件,它使用代理模式实现对常用的 JDBC Driver( Oracle , Derby , MySQL , PostgreSQL , H2 ,等)操作的拦截,记录真实 SQL ,可以将占位符与参数全部合并在一起显示,方便直接拷贝 SQL 在 MySQL 等客户端直接执行,加

2024-01-04 21:06:48 759 1

原创 java生成自定义长度的唯一随机字符串

java生成自定义长度的唯一随机字符串

2023-10-13 16:20:04 480 1

原创 基于redisson实现注解式分布式锁

redisson注解式分布式锁

2023-10-12 15:08:24 467

原创 双因子认证,TOTP动态口令认证

TOTP:Time-based One-Time Password写,基于对称密钥与时间戳算法的一次性认证码。时间同步,基于客户端的动态口令和动态口令验证服务器的时间比对,默认每30秒产生一个新口令,要求客户端和服务器能够十分精确的保持正确的时钟,客户端和服务端基于时间计算的动态口令才能一致。算法安全的核心在于密钥 , 每个人通过对应账户生成的密钥是不同的 . 当他们用同一个算法加密时 , 会生成不同的随机密码,认证时客户端需要使用阿里身份宝,Goole 身份验证器等工具生成认证码。

2023-06-25 11:36:57 1596

原创 springboot mybatis-plus慢sql输出日志,log4jdbc使用

无论使用原生JDBC、mybatis还是hibernate,使用log4j等日志框架可以看到生成的SQL,但是占位符和参数总是分开打印的,不便于分析,显示如下的效果:Log4jdbc 是一个开源 SQL 日志框架,它使用代理模式实现对常用的 JDBC Driver( Oracle , Derby , MySQL , PostgreSQL , H2 ,等)操作的拦截,记录真实 SQL ,可以将占位符与参数全部合并在一起显示,方便直接拷贝 SQL 在 MySQL 等客户端直接执行,加快调试速度。

2023-06-25 10:10:58 2257

原创 springboot openfeign Sentinel统一降级处理

提供默认的降级方式,若openfeign未指定FallbackFactory则走默认降级方式,否则就走自定义的FallbackFactory降级。此种方式太过于麻烦,每一个方法都要写一个降级逻辑,并且降级逻辑大多是雷同的。

2023-06-09 10:15:02 1822

原创 springboot2.6.3整合knife4j 3.0.3

maven打包需指定profile,如mvn clean package -Pdev -Dmaven.test.skip=true。搭建knife4j在线接口文档,并且支持在线调试,下载接口文档到本地,直在dev环境引入knife4j依赖,其余环境不引入。2. dev 配置文件配置。

2023-06-02 22:55:46 513

原创 Arthas分析方法耗时,java方法耗时过长分析

碰到服务器部署的服务响应过慢我们通常可以通过类似skywalking与sleuth+zipkin的链路追踪技术来分析方法调用链路耗时情况,但有时候服务没有集成链路追踪那就得另谋犀径了,最近在工作中就碰到了此种情况,最终使用阿里巴巴的Arthas来分析,这里记录下详细过程。

2023-05-05 22:53:06 1822 1

原创 java内存占用过大分析,mat内存快照分析

MAT(java memory analyzer tool)是一款基于eclipse免费开源的java内存分析工具,可以用来分析java堆栈溢出,大对象排查等。

2023-04-27 21:30:37 1719

原创 java方法耗时统计,JavaAgent javassist bytebuddy统计方法耗时,jvm监控prometheus

JavaAgent,bytebuddy,prometheus,jvm

2022-12-18 12:09:30 1688 1

原创 springcloud日志链路追踪,Zipkin,Spring Cloud Sleuth

springcloud日志链路追踪,Spring Cloud Sleuth,Zipkin

2022-11-09 22:44:57 755

原创 idea使用fiddler抓包分析,fiddler抓取https

idea使用fiddler抓包分析,fiddler抓取https

2022-09-24 15:26:24 2556

原创 接口幂等性探讨

接口幂等性

2022-09-01 23:27:34 329

原创 vue css实现走马灯(轮播)组件,websocket推送数据

vue走马灯组件

2022-07-25 15:32:33 1663

原创 nginx kafka flink mysql用户操作日志统计

https://zhuanlan.zhihu.com/p/348877559

2022-04-29 23:15:47 4570 2

原创 flume+kafka+flink+mysql实现nginx数据统计与分析

https://juejin.cn/post/6937988947498762270

2022-04-20 20:08:49 6586

原创 jenkins自动化打包部署,jenkins执行sh脚本不退出问题

介绍Jenkins是开源软件项目,主要用来自动化打包部署。使用jenkins彻底告别手动部署的麻烦与繁琐。安装部署jenkins官方下载地址启动jenkins war包登入jenkins设置maven,jdk由于jenkins机器已有Maven与jdk,这里直接设置对应安装路径即可项目构建与部署设置应用部署目标服务器配置远程服务器ssh登录设置密码与超时时间新增maven项目输入项目名称,类型设置代码库,这里我使用的是svn设置编译脚本点击高

2022-03-09 10:23:55 2250 1

原创 webflux webclient DataBufferLimitException: Exceeded limit on max bytes to buffer

org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer

2022-02-24 15:41:14 1137

原创 webflux切面拦截权限,webflux整合aop,webflux获取request

背景在springboot+tomcat应用中获取request可以使用RequestContextHolder.getRequestAttributes()的方式来获取,此种方式的核心在于request所在容器被放在threadlocal中,但是webflux结合netty项目却不能这么使用,因为webflux是异步响应式的。...

2021-12-24 18:04:32 6714 1

原创 java实现表锁行锁

分段独占锁public class SegReentrantLock{ private List<Lock> lockList; public SegReentrantLock() { this(10); } public SegReentrantLock(int size) { if (size < 1){ throw new IllegalArgumentException("size mus

2021-12-20 21:07:12 2162

原创 java修改配置不重启,java运行时修改应用数据,通过jmx修改应用运行数据

背景运行中的应用修改了配置后应用能生效有多种解决方案,比如:配置存入redis中修改了配置文件后按时检测配置文件是否被修改,被修改则读取修改后的内容下面介绍springboot工程通过jmx动态修改配置不停机的方式来管理配置文件,此种方式使用简单,而且实时生效,没有延迟。知识普及jmx MBean:所有被MBeanServer管理的资源,提供了访问接口,可通过RMI或HTTP访问实现功能动态修改应用的浏览器黑名单实现过程编写MBean类编写浏览器黑名单类,将其注册到MBean

2021-11-10 09:02:41 1051

原创 jconsole远程监控认证,java远程监控,jmx监控应用,jmx ssl配置,jconsole ssl连接远程应用

知识普及jmxJMX(java Management Extensions)是一个Java平台的管理和监控接口。任何程序,只要按JMX规范访问这个接口,就可以获取所有管理与监控信息,jconsole与Java VisualVM等常见监测工具都是基于jmx,JMX不但可以用于管理JVM,还可以管理应用程序自身。JMX把所有被管理的资源都称为MBean(Managed Bean),MBean全部由MBeanServer管理,如果要访问MBean,可以通过MBeanServer对外提供的访问接口,例如RMI

2021-10-15 11:49:20 1627 1

原创 java制作带有logo的二维码,解决zxing中文乱码

目标使用谷歌zxing生成带有logo二维码使用便捷方式解决二维码中文乱码问题过程下载依赖:maven坐标:<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version></dependency>编写java代码生成二维

2021-08-05 14:25:16 655

原创 jmeter生成优美的压力测试报告,jmeter生成html压测报告,jmeter压力测试

在jmeter bin目录使用如下命令将测试报告转成htmljmeter -g B:\projects\xx\Mes\压力测试\jmeter数据\报告\tsp签名压测报告.jtl -e -o B:\projects\xx\Mes\压力测试\jmeter数据\报告\html\tsp签名压测报告说明:-g 指定已存在的测试结果-o 指定测试报告的存放位置,指定的文件夹必须是不存在的,否则执行失败-e:测试结束后,生成测试报告...

2021-06-24 22:46:58 2142 1

原创 java实现数据持久层框架,自定义实现数据持久层框架,兼容spring,兼容spring事务管理

完整代码:https://gitee.com/tandatda/smpedr使用完整demo:https://gitee.com/tandatda/demo-edr-smpdb

2021-06-11 11:57:10 1523 2

原创 手写java数据库连接池,自定义实现数据库连接池,兼容springboot

一、目标 用精简的代码实现一个类似于Hikari,Druid一样的数据库连接池。

2021-06-10 22:45:40 1065 1

原创 mysql数据类型所占空间大小

官方文档:https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html

2021-06-06 10:38:42 724

原创 java修改字节码技术,Javassist修改class,ASM修改class

背景: 项目使用的Logback 1.1.11版本的类ch.qos.logback.core.rolling.helper.RollingCalendar的periodBarriersCrossed方法long转换成int发生溢出,导致日志无法删除,最终决定在不升级logback版本的前提下使用java修改字节码技术修复此bug。1:ASM直接修改字节码:<dependency> <groupId>asm</groupId>...

2021-05-24 11:46:17 1760

原创 logback1.1.11日志无法自动删除

logback的类ch.qos.logback.core.rolling.helper.RollingCalendar的periodBarriersCrossed方法long转换成int发生溢出,导致最高位变为1,成为了负数。最新版本已修复此bug, maven依赖如下:<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artif

2021-05-22 14:44:15 1095 2

原创 mysql InnoDB 聚集索引,二级索引

InnoDB索引分为聚集索引(聚簇索引)与二级索引。聚集索引:1: 全表唯一且必有一个,主键索引属于聚集索引。2: 索引项的顺序就是表中数据记录的物理顺序。3: 若定义了主键索引InnoDB则使用主键索引当做该表的聚集索引,没有主键索引则使用第一个非空的唯一(UNIQUE)索引作为聚集索引,二者都没有则自动创建一个6字节的自增隐藏列作为聚集索引,此列包含了每一行的自增row ID,此聚集索引名为GEN_CLUST_INDEX,按此rowID排序的行在物理上按插入顺序。二级索引:除..

2021-05-16 18:54:22 437

原创 spring事务提交回滚原理mybatis版

sping事务非常简单好用,不用手动提交回滚事务,比如下面代码将2个更新操作一同提交,一同回滚。上述代码基本没有任何有关jdbc事务的操作,但却能将2个数据库更新操作同时提交与回滚,这是个值得思考的问题。通过思考并查阅spring源码与资料,得出以下结论:1: 图中2个更新操作中,mybatis两次更新以及spring回滚与提交过程中获取的是同一个jdbc connection,connection是保存在ThreadLocal中。2: 提交与回滚操作是spring通过事务拦截器+代理方式.

2021-04-18 21:31:41 799

原创 mysql批量更新,批量插入之replace语句/insert into... on duplicate key update语句

先说结论:1:如果业务逻辑强依赖自增ID,建议不要用REPLACE2:replace语句当存在主键冲突的时候是先DELETE再INSERT,无冲突直接进行insert3:当存在唯一索引冲突的时候是直接UPDATE,UPDATE操作不会涉及到AUTO_INCREMENT的修改4:很大程度上会导致主备中断,存在容灾风险使用语法:1:如果给定行数据不存在,那么MySQL REPLACE语句会插入一个新行(是否存在以UNIQUE索引或PRIMARY KEY为准),不存在则删除旧行,插入新行

2021-04-18 00:12:49 3788

jenkins部署脚本

jenkins部署脚本

2024-02-19

springboot openfeign Sentinel统一降级处理实现代码

springboot openfeign Sentinel统一降级处理实现代码

2023-06-08

mysqldump定时备份

mysqldump定时备份sh

2022-12-04

mysql配置文件,通用配置

mysql配置文件,通用配置

2022-08-12

nginx配置文件,nginx调优配置

nginx配置文件,nginx调优配置

2022-08-12

vue结合css实现的跑马灯组件

上下左右方向皆可跑,无抖动现象,性能好。

2022-07-22

mongodb4.2配置文件

mongodb4.2配置文件

2022-06-29

一键安装MySQL5.7.10脚本

一键安装MySQL5.7.10

2022-06-21

centos一键安装openjdk1.8

centos一键安装openjdk1.8

2022-06-20

flume+kafka+flink+mysql数据统计

flume+kafka+flink+mysql实现nginx数据统计与分析

2022-04-20

linux传输文件脚本(无需手动输入密码)

linux传输文件脚本(无需手动输入密码)

2022-03-07

springboot启动/停机脚本

springboot启动/停机脚本

2022-03-07

Mycat-Server-1.6.5-RELEASE.rar

mycat完整配置,单库分表

2021-01-25

jarjar-1.4.jar.rar

jarjar-1.4使用环境,。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2020-02-23

空空如也

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

TA关注的人

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