自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

原创 poi-tl+kkviewfile实现生成pdf业务报告

需求背景,需要把ai生成的一些业务数据,生成一份pdf报告。

2025-01-07 16:11:17 1108

原创 cursor和CodeGeeX的使用体验和分享

目前市面上常用的两个编程gpt应该就是Cursor和CodeGeeX了。

2025-01-03 17:57:17 1229

原创 分布式集群下的业务敏感数据加解密之具体业务解决方案(附代码)

前面的一篇文章中写了,这篇文章来写一下具体的业务如何接入这个方案,业务的接入首要宗旨当然是对业务侵入性要最小,尽可能不影响原生的业务逻辑,说白了就是少改点代码。下面给大家提供一个简单的示例和思路。

2024-05-29 10:27:33 467

原创 分布式集群下的业务敏感数据加解密通用解决方案(附代码)

分布式集群业务下的敏感数据加解密解决方案、高效安全便捷

2024-05-28 10:50:51 1060

原创 为什么建立数据库连接耗时?究竟耗时多久?

前面是TCP的三次握手,后面是四次挥手(少了一次,因为服务器的套接字端口已经关了,不会给客户端发请求了,所以没截取到)数据库连接从连接池中取这已经是大家的共识了,因为频繁的建立或者关闭连接代价太大,那么代价究竟有多大?如果一个日请求量为10w的系统,那么会平白无故多出四五个小时的耗时,离离原上普了可以说。除了部分慢sql,一个普通的sql一般最多也就几十毫秒,不会高于100ms。这也就是说,如果不使用连接池,那么每个请求平均多200ms的耗时。我们再看耗时-0.190908s,也就是。

2024-05-23 14:22:07 515

原创 IT行业近十几年的发展史,从web1.0到3.0,大数据、元宇宙、比特币,区块链、AIGC....到底什么是出路

IT行业近十几年的发展史,从web1.0到web3.0,大数据、元宇宙、比特币,以太坊、NFT、区块链、AIGC....到底什么是出路?IT的赛道到底在哪里

2024-05-22 11:16:20 2213

原创 CPU是如何运行程序的?

pu是如何工作的?一条计算机指令是如何被执行的?a=1+2是如何执行的?

2024-05-21 14:42:52 1018

原创 AIGC对于影视文学创作的提效与展望

我举个例子,对于大部分的影视剧工作室、出品方或者说一些编辑部、出版方来说,每天要审阅的文学作品和稿件是海量的,在AIGC出来之前,只能够人工去审阅,无非就是在流程上先做个提效,比如让大量实习生先做第一道关卡,按定好的标准给作品分一下等级、写一个粗略的大纲之类的,再交由后面的人员,尽量减少高级审阅人员的工作量。如果说文学创作上利用的是gpt的文字生产能力,那么把文生文的第一个文,从你的主观需求变成一个固定的文学作品,那就是AIGC在文学审阅方面的作用了。但是AIGC出来之后,完全。

2024-05-20 11:13:09 772

原创 JVM内存模型最新面试题(持续更新)

java中创建的对象放在哪里?动态年龄判断?空间担保机制?CMS和G1收集器?浮动垃圾?为什么使用标记清除?Region的划分?

2024-05-15 19:16:07 506

原创 一个基于更新频率和卡片等级、浏览量的动态推荐排序算法

可以看到这个算法本身的逻辑并不难,它的难点在于如何分析出合理的参数,要基于当前系统的数据情况,未来业务的发展预期和想要达到的推荐效果,来得到算法的参数。

2024-04-23 15:50:30 1003

原创 一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言如何注册chatGPT,怎么和它交互,本文就不讲了;因为网上教程一大堆,而且你要使用的话,通常会再包一个算法服务,用来做一些数据训练和过滤处理之类的,业务服务基本不会直接与原生chatGPT交互。而下面阐述的,就是业务服务与算法服务的交互。

2024-04-23 11:28:58 2745 1

原创 关于分布式锁的释放和spring事务提交时机不符合预期从而带来的数据不一致的问题

首先注意,本文探讨的不是分布式事务,请读者注意区分!在我们的日常开发种,分布式锁和spring事务是常见的两种控制数据一致性的方式。分布式锁和spring事务各自的作用就不做阐述了,不是本文重点,本文重点阐述一下锁释放和事务提交的问题。

2024-04-18 18:30:30 922

原创 关于fail-fast机制和集合中删除元素报错这件事

ConcurrentModificationException、fail-safe、fail-fast,循环遍历中删除元素报错

2024-04-17 11:49:41 308

原创 全网最全的订单超时状态更新的几种实现思路

全网最全的订单超时状态更新的实现思路,使用了jdk的delay,redis,rocketmq,订单超时系统等

2024-02-18 13:59:26 1086

原创 思维发散之科学与魔法

魔法和科学分别怎么定义 有什么关系?哪个更厉害?神存在么?小说中的魔法、影视化魔法和科学化魔法又分别有什么区别

2024-01-08 16:45:03 1087

原创 xxl-job日志调度没问题日志一直报错xxl-job provider netty_http server caught exception java.io.IOException: Con

[EmbedServer$EmbedHttpServerHandler:exceptionCaught:230] [TID:N/A]: >>>>>>>>>>> xxl-job provider netty_http server caught exceptionjava.io.IOException: Connection reset by peer

2023-09-21 12:02:37 3346

原创 漏洞修复-服务端请求伪造(SSRF)

点击上方名片关注我,为你带来更多踩坑案例- 什么是SSRF-SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种由攻击者构造请求,由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统,因为服务器请求天然可以穿越防火墙。漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做正...

2023-03-31 12:00:52 2046

原创 排坑日记-事务回滚异常

点击上方名片关注我,为你带来更多踩坑案例现象这个报错不知道大家遇到过没有org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only报错的含义就是spring的事务回滚有...

2023-03-29 15:18:37 585

原创 系统设计-批量插入

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2023-03-28 18:44:02 281

原创 系统设计-文本内容保存之XSS过滤

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2022-11-25 10:00:06 505

原创 系统设计-常见的点赞功能如何实现?如何防止刷赞?

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2022-11-24 10:00:21 5395 1

原创 排坑日记-文件上传报错?全局异常处理!

点击上方名片关注我,为你带来更多踩坑案例有一个业务场景,是客户端(类似百度网盘)需要上传文件列表到服务端然后发现服务端抛了FileSizeLimitExceededException异常,部分文件上传失败接口如下:@RequestMapping("file-list")public ApiResponse<Object> batchUploadAssets(@...

2022-11-22 11:36:14 388

原创 系统设计-参数还能这么优雅校验?

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2022-11-15 09:00:12 194

原创 系统设计-当服务重启时,大部分人没考虑到的一点

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2022-11-14 10:30:06 168

原创 系统设计-领导让我设计一个任务系统

点击上方名片关注我,为你带来更多踩坑案例- 引言-如果你是一个摸爬滚打几年的开发者,那么这个阶段,对系统设计的合理性绝对是衡量一个人水平的重要标准。一个好的设计不光能让你工作中避免很多麻烦,还能为你面试的时候增加很多谈资而且,不同设计之间理念都是有借鉴性参考性的,你见过的设计多了,思考的多了,再次面临一个问题的时候,就会有很多点子不由自主的冒出来。希望这个系列的文...

2022-11-12 21:00:29 318

原创 每日小知识-redis热点key还能这么处理?

点击上方名片关注我,为你带来更多踩坑案例引导当你没时间阅读厚厚的书籍或者厌倦了长篇大论的面经那么这个系列适合你只需要在地铁上、吃饭时、厕所里,几分钟的时间就可以获得一个小知识每天一点小进步,日积月累之下你会感谢自己请关注我,持续为您带来更新小知识不管是在面试的时候,还是在日常工作中,很多人都会用到redis而redis的大部分用法都是日常缓存,用来减少数据库的读压力但是即便是redis如此的高性能...

2022-11-11 10:00:02 320

原创 每日小知识-学会这招,再也不怕依赖冲突!

点击上方名片关注我,为你带来更多踩坑案例引导当你没时间阅读厚厚的书籍或者厌倦了长篇大论的面经那么这个系列适合你只需要在地铁上、吃饭时、厕所里,几分钟的时间就可以获得一个小知识每天一点小进步,日积月累之下你会感谢自己请关注我,持续为您带来更新小知识你是否遇到过依赖冲突呢?特别是在创建新的项目或者引入新的依赖的时候No Such Method XXX上面的报错相信大家都遇到过90%的情况是因为依赖冲突...

2022-11-07 20:49:25 128

原创 排坑日记-获取不到类上的注解?空指针?

点击上方名片关注我,为你带来更多踩坑案例引导废话不多说,本文从现象-原因-解决办法三个方面来简述解决办法有多种,大家根据自己的情况自行选择想看解决办法的直接拉到最下面现象使用springboot,在执行类似如下代码的时候AbstractDataAuthHandler是一个抽象类类下面有几个标有DataAuthHandler注解的子类,分别实现了不同的功能想把注解中指定的value作为key,han...

2022-11-03 11:44:12 467

原创 排坑日记-jpa中字段总是自己莫名更新?

点击上方名片关注我,为你带来更多踩坑案例引导废话不多说,本文从现象-解决办法-原因三个方面来简述解决办法有多种,大家根据自己的情况自行选择现象使用springboot+mysql+jpa,在执行类似如下代码的时候List<ProjectEntity> projectEntityList = projectRepository.findAll();for(inti...

2022-11-02 11:25:20 1274

原创 mysql中的bigint类型竟变成了它?

点击上方名片关注我,为你带来更多踩坑案例引导废话不多说,本文从现象-解决办法-原因三个方面来简述解决办法有多种,大家根据自己的情况自行选择现象mysql中的字段是bigint(20)类型,java中实体类的字段是Long类型,写了一个方法大概如下:@Query(value="selectidfromtest_peoplewherestatus=1",nativeQuery=...

2022-11-01 15:44:40 501

原创 排坑日记-docker中的服务,注册到xxljob中必须要注意的一点!

点击上方名片关注我,让你开发少踩坑还是在部署xxljob的时候,遇到的一个坑,其他基本操作按照官方文档来,不会出现什么问题,我这里列出的都是一些文档上没提到的可能会忽略的点。本文适合准备或者已经接入xxljob或者其他分布式调度平台的朋友查看出现的坑xxljob部署在docker容器中(以下简称服务端)业务应用的测试环境也部署在docker容器中(以下简称客户端)客户端整合了xxljob...

2022-10-28 22:30:33 534

原创 排坑日记-xxljob接入eureka必会遇到的坑!

背景在做一个项目时,需要引入分布式调度框架,最后选了xxl-job,在xxl-job部署的时候,自然要需要接入eureka,这个坑就是这个时候出现的。(客户端接入eureka的教程很简单,大家不清楚的可以自行百度)坑1-eureka的包要选对<!-- eureka --><dependency> <groupId>org.springframework.c...

2022-10-27 21:01:55 550

原创 记录一次接入xxl-job的踩坑记录

接入企业公用邮箱的邮箱告警改造关于xxl-job接入eureka的坑关于xxl-job注册到容器中关于调度器无法访问容器中的执行器的坑

2022-08-25 12:12:48 1976

原创 关于一次fullgc告警分析与分布式任务调度框架的选型调研

但是这次定时任务导致的fullgc引发了我的思考,其实在当今分布式应用的大环境下,我们还用之前老一套的定时任务去处理,确实会带来很多不便,比如这次的问题,如果采用分布式任务调度框架的话,是不是就能避免或者更早的发现这样的问题了?task1与task2的调度间隔为1s,但是因为task1与task2的执行时间都超过了1s,所以预期的时间间隔应该是。这里没有写每种分布式框架的原理,其实分布式调度框架的目的是一样的,所以注定了它的原理不会有太大的差异。对我们的业务场景而言,分布式调度框架的优点就是。...

2022-08-17 18:02:12 387

原创 一种通过部分下载zip快速解析目录结构的方法

在涉及到多文件上传时,为了效率,往往会打成压缩包上传,而有些场景需要将压缩包中文件的层级结构保留并做以展示,以供用户下载前预览。若按照正常流程,需要业务线服务端将压缩包下载并解压,然后得到文件大小、类型、相对路径等信息后做层级封装,返回给前端展示。但是此场景下的压缩包,往往文件数量和体积都不会小,所以服务端去一一下载并解压就会很耗费资源。于是此方案目的就是通过不完全下载压缩包来获取压缩包内文件结构。......

2022-08-16 17:51:18 717

原创 线程池的自定义策略

有一个上传任务,文件大概有数万,上传后发现有部分文件数据异常,查看日志发现有部分文件的异步事件未调用,所以猜测是否是调用的异步事件比较多,线程池阻塞队列满了。

2022-08-16 17:07:58 375

原创 100 万请求同时从 Redis 取相同的 Key,如何优化(热点key的问题)

背景其实这是一个很常见的场景我们单台redis的承载是有上限的业务场景中经常会有这种,比如热点商品抢购场景,热搜等,都会出现同时搜索同一个key的场景。哪怕部署了集群,通过一致性hash之后,这些请求还是会打到一个机子上,因为是一个key。如何发现热点数据主要针对的是C端,B端的话一是不会有这么高的并发,二是也能够预测中哪些是热点key。即便是C端,其实有些业务场景也是能够预测出热点key的,比如在做某些电商活动的时候,可以给一些热销商品做一个提前缓存。某些无法预测的,只能实时去处理,比

2022-03-24 11:57:41 2613 1

原创 用redis做注册中心如何感知服务的上线和下线?

这里是引用众所周知,分布式或者说微服务之间能够互相感知对方的存在,互相通信,就是因为有着注册中心的存在。springcloud常用的eureka、zookeeper,以及dubbo常用的zookeeper、redis等。这都是注册中心的不同实现。redis是相对来说使用的比较少的一种实例。redis注册中心的使用1. 存储形式服务在zookeeper中存放是以文件路径的形式存在的。而在redis中是以key-value形式存在的。外层的key是表明这个key存储的是生产者列表或者消费者.

2022-03-24 11:39:53 4538

原创 断言和异常的区别

二者的最大区别是业务异常还是需要修改代码的异常或者换句话讲断言:如果正常运行中不可能出现的错误,这种错误出现意味着编码有问题,是个bug,那就使用断言检测。它的目的是开发阶段用来检测编码异常的,一版在线上的版本都会使其失效。它属于契约式编程的一种。异常一般我们的业务异常,就是用户正常使用过程中会出现的异常,比如密码错误之类的,都会使用这个。...

2022-02-21 19:05:26 377

原创 jvm在分配内存的时候如何保证线程安全?

分配内存的时候为什么会线程不安全?因为JVM堆内存是共享的创建对象是会在多个线程中都会出现的操作线程在new对象的时候,需要拿一块内存去存放,可以理解为需要从一个空闲内存列表中拿取空闲内存。如果不做任何限制,那么多线程的场景下,极有可能出现多个线程分配到同一块内存的情况。也就是所谓的线程不安全了如何解决解决线程不安全的思想大概可以归为两类给线程不安全的方法加锁线程隔离解决方法1-加锁:一个很通用的思想就是,给线程不安全的操作加锁同样适用于分配内存如果我们给jvm堆中,分配内存这

2022-02-21 17:39:59 1774

空空如也

空空如也

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

TA关注的人

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