- 博客(113)
- 收藏
- 关注
原创 接口对外安全交互新姿势
由于这久做了一个乐企数电开票的项目,已经上线了,真的是一言难尽,再回首已经是轻舟已过万重山,接口通过外网暴露给业务方使用,由于业务方的服务是在阿里云上,我的这个服务是在华为云上,所以k8s上的服务只能通过service对外暴露出去给阿里云上的业务侧使用,所以我就有了下面的这个思路,使用ip白名单和sm2对请求body的做解密,响应做加密,只需要把秘钥和加密工具类对给业务侧就可以安全的调用接口,其实在华为云上可以在负载均衡器上配置白名单,只允许阿里云上那几台服务器的ip访问,所以在项目中就不用加这个i
2025-03-12 13:21:13
1086
原创 sa-token之@SaIgnore注解失效的真正原因及正确姿势
sa-token之@SaIgnore注解失效的真正原因及正确姿势 由于之前在项目中使用了sa-token,在使用的过程中发现@SaIgnore注解失效,之前以为是aop切面失效了,不知道失效的真正原因,那本文分分享其失效的真正原因及真确姿势,之前分享文章导读:2.原因2.1原理 首先需要了解Filter、Interceptor、AOP及MVC的原理及调用先后顺序,看上面的几张图可以说是一下子豁然开朗了。 该类在:sa-token-core包中,此包只要引入了sa-token的相关包,会自动引入
2025-01-14 22:07:26
1099
原创 自定义注解使用AspectJ切面和SpringBoot的Even事件优雅记录业务接口及第三方接口调用日志实现思路
在日常的开发中经常会遇到对接第三方系统,如:各种支付(微信支付、支付宝支付。
2025-01-14 21:58:49
688
1
原创 自定义注解之AspectJ切面动态代理使用注意事项
Slf4j@Aspect@Component//切面表达式写法还有很多种//之前逻辑try {//异常逻辑//之后逻辑通过这点东西,后面会写一篇文章分享,如何优雅自定义注解使用AspectJ切面及SpingBoot的Event机制记录业务接口调用日志及第三方接口调用日志,这个思路实现之后对于后期排查问题是非常的方便,本次分享到此结束,希望我的分享对你有所帮助,请一键三连,么么么哒!
2025-01-14 21:52:59
335
原创 SpringBoot项目分离与分层方式之容器化部署
SpringBoot项目分离与分层方式之容器化部署 之前也分享过分离与分层方式部署,本文只不过将之前的那两种方式放到了容器中来部署运行,里面多多少少还是有点坑在里面的,要相对简单一点直接使用如下命令部署: 使用容器部署方式就比这种更高级优雅一点,根据个人喜好去选择适合自己的部署方式。 之前的文章链接如下:2.deom项目工程结构 这里只展示build的配置3.2子模块3的Dockerfile 容器中工作路径下有app.jar、config。resources这几项. 子模块3打包之后
2025-01-10 01:40:11
958
原创 Docker Desktop 构建java8基础镜像jdk安装配置失效解决
Docker Desktop 构建java8基础镜像jdk安装配置失效解决 之前的好几篇文章中分享了在Linux(centOs上)和windows10上使用docker和docker Desktop环境构建java8的最小jre基础镜像,前几天我使用Docker Desktop环境重新构建了一个java8最小jre基础镜像,使用之前windows上使用的dockerfile构建是没有啥问题,但是本地项目引入该基础镜像之后,启动应用的容器,查看日志发现报了一个如下错误: 这也是一个奇葩的问题,在Linu
2025-01-10 01:35:36
1067
原创 之前手写的两个好用开源组件优化升级
这两个手写开源好用的组件是在日常项目实践中发现了一些问题,后面优化了迭代了,依赖包都推送到maven中央仓库上了,项目中直接引入对应的maven依赖包安装教程配置一下,就可以方便轻松快捷的使用我给大家提供的开源组件了,解决对应的业务问题还是一把利器的,简化代码,纵享丝滑,希望我的分享对你有所启发和帮助,请一键三连,么么么哒!
2025-01-10 01:31:50
588
原创 Mysql深度分页之MyBatisPlus百万数据分页优化新姿势
前段时间,我司会员表有600多w数据分页查询特别的慢,于是乎我去explain了一下分页查询的sql是由于没有走索引,导致全表扫描,查询特别的慢,由于会员表有一个逻辑删除的字段,所以查询的时候sql条件会默认第一条件就是逻辑删除的字段,这个之前的文章也有分享过这个逻辑删除字段在查询第一个导致索引失效的坑,于是乎在之前加的索引上把逻辑删除字段加在索引第一列之后,分页查询sql就走了索引,没有之前那么慢;
2024-12-28 18:19:41
1439
1
原创 Docker安装体验kuboard-k8s多集群管理工具
本次分享介绍了通过docker的方式快速部署安装kuboard-k8s多集群管理工具体验,它的官网上的文档非常的详细,还有一些关于k8s知识的分享,让我们可以更好的掌握k8s和通过kuboard-k8s多集群管理工具来管理多个k8s集群,官网也有关于kuboard的其它安装方式,生产环境肯定是要高可用安装,官网也有文档说明,具体的可以去参看官网的详细文档,本次分享到此结束,希望我的分享对你有所启发和帮助,请一键三连,么么么哒!
2024-12-28 14:37:18
901
原创 disruptor-spring-boot-start启动器
Disruptor是一种高性能的并发编程框架,它由LMAX Exchange公司开发,并于2011年开源。Disruptor旨在解决传统多线程编程中的性能瓶颈和并发问题,特别适用于需要高度并发处理的场景。Disruptor采用了一种称为"无锁编程"的机制,通过使用环形缓冲区(Ring Buffer)和事件驱动的方式实现高效的消息传递和处理。它的核心思想是将消息(事件)在生产者和消费者之间进行无锁的、高效的交换,以减少线程间的竞争和上下文切换。
2024-09-27 16:07:22
1394
1
原创 Idea安装VisualGC插件手把手教程
开发阶段实时监测,自己的JVM信息,实时可视化 Hotspot JVM 垃圾回收监控工具, 支持查看本地和远程JVM进程, 支持G1 and ZGC算法。整个界面主要分为四个区域,分别为:Spaces、Graphs、Histogram和JVM浏览器。如果需要不依赖IDEA单独运行, 请移步: VisualGC 3.0 独立运行增强版, 支持JDK 8**停止监控 按钮: **点击后会停止当前JVM进程的GC监控.JVM 浏览器窗口。
2024-09-27 16:04:30
1730
3
原创 springBoot应用使用exe4j与innosetup打包为exe可执行程序手把手教学
由于之前搞了一个windwos的java应用程序使用的部署在windwos10的机器上,需要先安装配置java环境程序包解压如图所示:exitbarrier.vbs的脚本如下:使用这个barrier.vbs调用了barrier.bat的脚本通过执行barrier.bat或着点击barrier.vbs(或快捷方式)或启动一个cmd的命令行窗口,运行脚本启动了一个cmd的命令行窗口,这种启动方式很丑陋,并且很容易被人点了关闭了,所以一点也不方便和友好。
2024-08-27 17:52:41
1477
原创 我的创作纪念日
天行健,君子以自强不息;地势坤,君子以厚德载物”继续深耕技术业务、不断提升自己的各方面的能力,提示:职业规划、创作规划等。“撸起袖子加油干,”
2024-08-27 17:28:06
657
原创 redis-distributed-id-generator-start之id生成器压测的一些思考
省略–参考之前的文章2.新建表3.测试代码 IdCreate实体类 IdCreateMapper类 TestController类4.jemeter压测结果预期 使用jemeter新建一个线程组,线程数设置1000,循环次数100次,然后多执行几次,直达请求100000(10w)次之后,使用mybatisPlus的sql注入器批量插入100000(10w)条数据到id_create表中,没有出现id重复,导致主键冲突而插入失败的情况,10w数据全部入库。
2024-08-20 21:27:32
867
3
原创 mybatisPlus的@TableLogic逻辑删除注解导致联合索引失效的坑
假设一个mysql的一张单表叫student数据量有500w左右,如果没有选择适当的列加索引的话,相关的查询就会全表扫描,使用的是mybatisPlus作为ORM框架,并且在实体上的逻辑删除字段del(0:否,1:是)上加了@TableLogic注解,那么StudentService中的业务查询代码如下所示: 如果在student的name,address两列上建立了联合索引如下: 请问各位看官上面那个StudentServer的this.getOne的查询有没有走index_nam
2024-08-16 15:29:40
919
原创 集成sms4j修改源码实现发送不带短信模版id的短信
sms4j:让发送短信变得更简单,是一款开源、优雅、开箱即用、切换灵活。功能丰富等特性的发短信的开源好用开源好用的轮子,支持的短信提供商也比较的多,支持的短信提供厂商有:阿里云、容联云、天翼云、亿美软通、华为云短信、京东云短信、 网易云信、腾讯云短信、合一短信、云片短信、助通短信、鼎众短信、联麓短信、七牛云短信 、创蓝短信、极光短信、布丁云V2 、中国移动 云MAS 、百度云短信、螺丝帽短信、SUBMAIL短信、 单米短信;官网上也有详细的说明,本文以华为云短信为例。 由于最近项目需要一个发送短信的功
2024-07-30 17:24:05
1258
原创 集成sa-token前后端分离部署配置corsFliter解决跨域失效的真正原因
缘由请参看下面这篇文章:sa-token前后端分离解决跨域的正确姿势这篇文章虽然经过n多次尝试找到了正确的姿势,但是问题的根本原因没有找到,然后我就经过一些思考和探索,我想这个跨域能不能在本地模拟出来,然后起就去找了项目前端人员老王,然后确实模拟出本地跨域,在项目中将之前sa-token前后端分离解决跨域的正确姿势文章中的SimpleCORSFilter注释之后进行了问题复现。
2024-07-08 20:00:34
1224
2
原创 Lock4j简单的支持不同方案的高性能分布式锁实现及源码解析
lock4j是苞米豆提供的一个分布式锁组件,其提供了多种不同的支持以满足不同性能和环境的需求。立志打造一个简单但富有内涵的分布式锁组件。
2024-07-06 18:56:51
1587
原创 sa-token前后端分离解决跨域的正确姿势
由于最近写了一个项目,前端使用vue,后端使用的是Java,集成国产sa-token(一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!sa-token官网提供的解决跨域的方法如下;上面的方式都只可以参考,但是实际上实践下来都失效了,配置了没有用,项目中使用的springBoot版本是:2.3.12.RELEASE,spring版本是5.2.15.RELEASE,这个跨域真是一个蛋疼的问题,网上各种文章看然后各种姿势去尝试,没有一个是可以的,最后经过各种尝试,终于找到了一个可行的姿势。
2024-07-06 18:49:37
2807
14
原创 TIS人人都会用的数据集成产品
TIS集成大数据领域优秀组件(FlinkX-CDC,Chunjun(FlinkX),DataX,Flink等)为您提供一站式、开箱即用的DataOps数据中台,大幅提高ETL实时数仓构建效率。TIS的愿景是实现企业大数据ETL(Extraction-Transformation-Loading)全覆盖的中台产品,数据抽取(Extraction)是大数据处理所有环节中的第一步,也是最重要的环节。,并且在原生DataX之上添加了功能特性大大提高了DataX的可用性。
2024-07-04 13:13:23
1100
原创 Dinky 让Flink作业纵享丝滑
Dinky的部署方式还有很多:二进制可执行包部署,源码编译部署,docker-compose部署,k8s部署等,支持多种flink模式提交任务,使用flink支持整库同步、增量和实时CDC数据同步,还集成DolphinScheduler(小海豚调度平台),支持主流的关系型数据库、OLAP数据库和数据湖产品,还有运维监控功能,可视化管理flink任务,Dink。
2024-07-01 16:32:35
2330
2
原创 Fast-Retry高性能百万级任务重试框架
Fast-Retry是什么?Fast-Retry是一个高性能任务重试框架,支持百万级别任务的并发重试处理。与主流的Spring-Retry, Guava-Retry等同步重试框架不同,Fast-Retry是一个支持异步重试框架,支持异步任务的重试、超时等待、回调。Spring-Retry, Guava-Retry均无法支持大批量任务的重试,因为会占用过多线程资源导致大量任务在等待处理,随着任务数的增加,系统吞吐量大大降低,性能指数级降低,Fast-Retry的性能是前者的指数倍。
2024-06-02 19:28:55
1494
1
原创 mybatisPlus3.5.1有个奇葩bug的解决方法
mybatisPlus3.5.1有个奇葩bug的解决方法1.2 bug问题 在使用mybatisPlus3.5.1分页查询的时候报了下面这个错,分页的count正常执行,但是分页查询就报下面这个错,这个问题网上千篇一律的添加sqlParser配置,Mapper添加啥注解,我试过了没啥鸟用,这个bug是mysqlPlus的一个租户相关会去解析sql检查执行的sql字段中是否包含关键字,如果包含关键字直接报如下的错误,乍一看自己写的sql在Navicat客户端上还可以正常执行,怎么mybatisPlus执
2024-05-31 12:42:33
1346
3
转载 Apache StreamPark 2.1.4 Release 稳定版发布
在本次发布中,支持了最新的 Apache Flink 1.19,简化了项目的配置,Flink on Kubernetes 方面的能力做了充分验证,修复了一些高危安全漏洞。简化了 on Kubernetes 模式下参数指定:在 Flink on Kubernetes Application 模式下的几个必要的参数如:serviceAccount,在早期的版本中没有直观的体现出来,需要用户通过 -D 动态属性 的方式指定,本次直观的将这些参数放到页面中,方便用户设置。
2024-05-19 00:40:44
188
原创 手写了一个好用的限流、分布式锁和手动控制事务相结合的starter启动器
由于之前写如下两篇文章:自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能自定义redission装配和集成分布式开源限流业务组件ratelimiter-spring-boot-starter的正确姿势在项目中使用下来就觉得能不能把这两个结合起来使用?
2024-05-19 00:12:40
603
3
原创 Dubbo接口参数校验的正确姿势
由于之前的文章分享了如下这篇文章:@Validated或@Valid参数注解校验、自定义手机号注解检验及优雅统一异常处理后面在项目中使用dubbo接口,就想能不能让dubbo接口也能参数校验,那么就不用在代码中写很多的if/else的参数校验了,直接dubbo的参数校验就给做了,那这种接口代码是不是又优雅、干净整洁了很多,于是乎我就上网开始看了一个些千篇一律的文章,没有一篇可以的,然后就经过不断的尝试之后,dubbo接口参数校验的正确姿势还是被我搞出来了,下面就分享给大家。
2024-05-19 00:08:50
1270
原创 手写好用工具类
上面都是一些我手写的经过长时间的项目经验代码的积累,可以减少重复的代码,写出优雅美观干净清秀工整的代码,所以干啥都需要厚积薄发,不断的去学习,去思考,去实践,去总结和沉淀,希望我的分享对你有所启发和帮助,请一键三连,么么么哒!
2024-05-19 00:03:31
537
原创 本地构建编译Apache-Seatunnel2.3.5适配Web1.0.0运行实现Mysql-CDC示例
本地编译先关可以查看之前的文章Apache Seatunnel本地源码构建编译运行调试CentOs7.x安装部署SeaTunnelWeb遇到的坑主要看Apache Seatunnel本地源码构建编译运行调试这篇。
2024-04-30 18:44:07
2504
3
原创 自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决
由于之前学习了下doris,看了下官网,然后就自己根据官网提供的构建镜像的步骤,构建了docker镜像,然后就遇到了Be镜像启动不会自动注册到Fe的问题,解决办法是去be里面手动注册即可。之前本来说研究下doris的,后面遇到这个问题去联系官方,官方也没有回复,后面就没有搞了,然后就想了下,把之前搞的这个过程记录下,以便后面更好的入门和快速上手。
2024-04-23 22:40:43
3024
2
原创 手写基于redis-lua脚本实现分布式id生成器starter
由于之前分享过一篇:百度开源分布式id生成器集成–真香警告里面提到了基于redis来实现一个分布式id生成器的思路,只是简单的说了下,本次分享就手写了一个。本文手写基于redis-lua脚本实现的分布式id生成器starter分享到此结束了,我把我手写的轮子开源出去,可以让java又多了一种分布式id生成的选择,解决了分布式id生成的问题,开源才能繁荣,通过本文的分享和之前文章的分享,在解决分布式id生成问题选择上丰富起来了,各种实现上基本都是类似和相通的,希望我的分享对你有所启发和帮助,请一键三连!
2024-04-23 13:07:21
1687
2
原创 推荐两款好用开源分布式id生成器
Vesta是一款通用的ID产生器,互联网俗称统一发号器,它具有全局唯一、粗略有序、可反解和可制造等特性,它支持三种发布模式:嵌入发布模式、中心服务器发布模式、REST发布模式,根据业务的性能需求,它可以产生最大峰值型和最小粒度型两种类型的ID,它的实现架构使其具有高性能,高可用和可伸缩等互联网产品需要的质量属性,是一款通用的高性能的发号器产品。CosId旨在提供通用、灵活、高性能的分布式 ID 生成器。单机 TPS 性能:1557W/s,三倍于,基于时钟的全局趋势递增ID,可以同时支持一百万个实例。
2024-04-23 13:04:31
964
原创 @Validated或@Valid参数注解校验、自定义手机号注解检验及优雅统一异常处理
使用@Validated或@Valid对controller接口的参数或controller中body的参数做检验可以让代码更整洁工整,不至于写很多if前置参数校验判断逻辑,在配和上优雅全局统一异常处理,使用本文的套路可以代码更优雅简洁工整清秀,代码可读性高和可维护性强,使开发人员更加专注于业务,我的分享到此结束了,希望对你有所启发和帮助,请一键三连,么么么哒!
2024-04-16 13:27:19
2517
2
原创 集成sa-token实现登录和RBAC权限控制
Sa-Token登录认证权限认证单点登录OAuth2.0分布式Session会话微服务网关鉴权等一系列权限相关问题。
2024-04-16 13:24:46
2832
1
原创 我手写的轮子开源了
我手写的轮子开源了1.2.gitee地址2.github坐标和地址2.1.github坐标2.2.github地址3.总结 这几个starter我觉得思路最好的就是这个rabbitmq-spring-boot-start,这个思路适用于springBoot官方提供的所有的start的重写,如果你想玩多个配置的话,这个思路是一个不错的选择,全网我各种搜索都还没有这种实现的,我基本测试了下,是ok的,上面提供出来的包我都引入项目测试了都是可以跑起来了的,这几个start都有readme.md
2024-03-18 21:37:21
3379
6
原创 2024年发布jar到国外maven中央仓库最新教程
由于我之前不是写了几个好用的start,然后我就想着能不能发布到国外的中央仓库上,给大家提供一个依赖,引入即可,然后我就去网上看了一些教程,结果实践下来发下,全部是过时的教程了,全网都没有一篇可行的教程么?
2024-03-18 21:34:47
2718
28
原创 手写超级好用的钉钉机器人发送消息starter
手写超级好用的钉钉机器人发送消息starter 由于业务上经常需要使用钉钉发送预警消息或者是发送一些运营数据消息等,平时经常写一些copy的代码,零零散散,那个工程要用就去copy一个过来,这种不易维护,且代码丑陋,重复代码多,且封装复用性差,所以我就说来写一个简单使用的starter,可以支持配置多个钉钉群的机器人的accessToken和secret,发送消息可以根据下标来构建一个对应类型的消息,然后调用一套好用简单的api就可以我完成发送消息,代码封装性和复用性强,哪个项目要用,只要引入依赖和配置以
2024-03-15 15:08:42
1253
2
原创 手写超级好用的rabbitmq-spring-boot-start启动器
手写超级好用的rabbitmq-spring-boot-start启动器 由于springBoot官方提供的默认的rabbitMq自动装配不是那么好用,一个项目中只能配置使用一个rabbitMq的服务器,队列也需要编码的方式定义,这种繁杂且不易使用,用一次需要写一次硬编码,之前有一个想法是,能不能使用springBoot官方提供的自动装配实现一个多rabbitMq多队列配置并且支持多种延迟队列的这种多对多关系的实现,但是左思右想,springBoot官方提供的这个rabbitMq自动装配不能满足我的需求,
2024-03-13 13:22:51
1715
2
原创 分享3款开源免费好用的Docker可视化管理工具安装部署教程
DockerUI是一个易于使用且轻量级的Docker管理工具。通过Web界面的操作,可以更方便地让不熟悉Docker指令的用户更快地进入Docker世界。DockerUI覆盖了Docker CLI命令行的95%以上的命令功能。通过DockerUI界面提供的可视化操作功能,可以轻松执行Docker环境和Docker Swarm群集环境的管理和维护功能Docker主机管理:数据卷管理,镜像管理,容器管理,构建管理,仓库配置管理,网络配置管理。
2024-02-07 15:44:35
4878
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人