自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1058)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据脱敏代码这样写,连CTO看了都点赞收藏

数据脱敏是一种通过对敏感信息进行处理,以保护数据隐私和安全的技术手段。它通过对数据进行伪装、加密、匿名化或模糊处理,使得未经授权的人员无法识别或还原原始数据,从而防止数据泄露和滥用。常见的脱敏技术包括替换、掩码、随机化和数据混淆等。数据脱敏广泛应用于金融、医疗、互联网等行业,在数据测试、开发和共享过程中,确保了数据的安全性和隐私性,同时又不影响数据的整体分析和使用价值个人身份信息(PII):金融信息:医疗信息:登录凭证和认证信息:设备和网络信息:行为和偏好数据:通信内容:地理位置数据:工作和教育信息:客户服

2025-04-20 05:15:00 495

原创 农行1面:Java如何保证线程T1,T2,T3 顺序执行?

join()Semaphore单线程池在实际开发中,这种需要在业务代码中去保证线程执行顺序的情况几乎不会出现,因此,这个面试题其实缺乏实际的应用场景,纯粹是为了面试存在。尽管是面试题,还是可以帮助我们更好地去了解和掌握线程。

2025-04-19 05:15:00 879

原创 Spring 6.0 + Boot 3.0:秒级启动、万级并发的开发新姿势

Beanhttp。

2025-04-18 05:15:00 642

原创 Feign的性能优化

连接超时(Connect Timeout):客户端建立与服务端的 TCP 连接所允许的最大时间。连接超时通常反映网络的可达性问题。读取超时(Read Timeout):客户端等待服务端返回响应的最大时间。读取超时通常涉及服务端的响应时间性能。默认情况下,Feign 的超时设置可能过于宽松或者没有明确指定,这在高并发场景下容易导致资源占用过多或调用延迟积累。

2025-04-17 05:15:00 1153

原创 Spring 通过三级缓存解决依赖循环问题

循环依赖是指两个或多个 Bean 相互依赖,形成一个闭环。例如,Bean A 依赖于 Bean B,而 Bean B 又依赖于 Bean A。

2025-04-16 05:15:00 348

原创 mysql---Innodb加锁原则:Record Lock_Gap Lock_Next-Key Lock

下面会介绍过了Record Lock、Gap Lock和Next-Key Lock,但是并没有说明加锁规则。

2025-04-15 05:15:00 1659

原创 向量数据库管理难题怎么破?Vector Admin或是最佳答案!

VectorAdmin 不仅仅是一个简单的工具,更是一套完备的解决方案。它作为一款功能全面的多用户产品,具有极高的灵活性。用户既可以通过 Docker 在本地轻松运行,以满足本地开发、测试的需求;也可以将其实时远程托管,以便随时随地进行数据管理。同时,它具备管理多个矢量数据库的能力,有效提升工作效率。Vector Admin 作为目前为数不多的开源向量数据库管理系统,有着诸多显著的优势。

2025-04-14 05:15:00 1693

原创 java--死锁,死循环会导致CPU使用率升高吗?

典型回答死循环会导致CPU使用率升高。当代码中出现死循环时,涉及的线程会不断执行循环中的指令而不会退出,因此会持续占用处理器资源。这种情况下,CPU会花费所有可用的时间片去执行这个无尽的循环,导致几乎没有资源剩余来处理其他任务或线程。!!我们可以通过实验验证上面的结论,以下实验在8C16G的物理机上实现。内存total=15g,14g可用,因为有1g是因为Linux内核分配给SLAB了。没有跑以上代码之前的CPU使用率下图所示,us代表用户态1%,sy代表内核态0.5%。

2025-04-13 05:15:00 833

原创 如何封装一个后台管理系统快捷键功能

最后总结一下整体流程:先注册存储:解析组合键(如ctrl+s)为结构体存入数组,监听keydown事件,捕获按键组合,对比事件对象与注册项的修饰键/主键,根据配置阻止默认行为/冒泡,触发回调。如有错误,请指正!

2025-04-12 05:15:00 469

原创 前端工程化:组件设计原则和通信方式

</div>return (<div>

2025-04-11 05:15:00 771

原创 春招面试拷打实录(三):面试血泪史,面经干货分享!!!

自定义指令本质是一个包含生命周期钩子的对象el:指令绑定的 DOM 元素(可直接操作)bindingvalue:指令的绑定值(如中的123arg:指令的参数(如中的"foo"modifiers:修饰符对象(如中的// 示例:打印 binding 对象console.log(binding.value) // 输出指令值console.log(binding.arg) // 输出参数console.log(binding.modifiers) // 输出修饰符})v-color},});

2025-04-10 05:15:00 1389

原创 JS闭包不理解?一杯咖啡的时间带你轻松理解闭包!

官方版:函数能够访问并记住其词法作用域,即使该函数在父级作用域外执行人话版:内部函数随身携带出生地(外层函数)的变量,走到哪里都能用。

2025-04-09 05:15:00 232

原创 Java 泛型:从入门到起飞

简单来说,泛型就是一种参数化类型的机制。它允许我们在定义类、接口或方法的时候,不指定具体的类型,而是用一个占位符(类型参数)来代替。这样,在使用这些类、接口或方法的时候,再传入具体的类型。比如说,我们有一个盒子 Box 类,它可以用来装各种东西。如果没有泛型,我们可能需要为每一种要装的东西都创建一个单独的 Box 类,像装苹果的 AppleBox,装橘子的 OrangeBox 等等,这显然太麻烦了。但有了泛型,我们只需要一个 Box 类,就可以装任何类型的东西啦!

2025-04-08 05:15:00 445

原创 通用树形结构构建工具类-Java

确保搜索结果的完整树形结构。

2025-04-07 05:15:00 349

原创 RocketMQ队列和消费者是如何计算对应关系的?

在 RocketMQ 中,消息队列(Queue)与消费者(Consumer)之间的对应关系由。在广播模式下,每个消费者都会消费主题下的所有队列,不涉及队列分配。:将主题下的所有队列,按照消费者组内的消费者数量,进行平均分配。假设某主题有 6 个队列(Q0-Q5),消费者组。RocketMQ 中队列与消费者的对应关系通过。(Load Balancing) 决定。适合需要消息被多个消费者同时处理的场景。策略,每个消费者分配连续的一组队列。以下是具体的计算方式及原理整理。分配队列与消费者的关系。

2025-04-06 05:15:00 1260

原创 Vue 项目线上更新无需强制刷新的方案

在 Vue 项目中,当发布新版本后,用户可能因为浏览器缓存而继续使用旧版本。

2025-04-05 05:15:00 261

原创 探索 RAG(检索增强生成)

RAG 技术不仅为 AI 应用带来了更高的准确性和灵活性,还为开发者提供了一种创新的思路,能够开发出更智能、更贴合用户需求的 AI 系统。通过本文的介绍以及代码示例,相信大家对 RAG 技术有了更深入的了解,期待在未来,RAG 技术能够在更多领域开花结果,为我们的生活和工作带来更多便利与惊喜。

2025-04-04 05:15:00 497

原创 npm和npx的区别

Node.js 的包管理工具,用于安装、管理和发布 JavaScript 包。的配套工具,用于直接执行包中的命令,,可以更高效地管理依赖和执行命令。

2025-04-03 05:15:00 351

原创 如何限制一个账号只能在一处登录

要实现账号单点登录(一处登录限制),需结合。

2025-04-02 05:15:00 644

原创 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!

过期时间 + 容量上限。Spring组件三查。

2025-04-01 05:15:00 987

原创 H5首页白屏时间太久问题优化

白屏时间通常指的是用户从点击页面到看到首屏内容DNS解析:浏览器解析域名的IP地址。TCP连接:建立与服务器的TCP连接(三次握手)。请求与响应:浏览器向服务器发起请求,服务器返回HTML、CSS、JS、图片等资源。页面解析与渲染:浏览器解析HTML、CSS,执行JS,构建DOM树和CSSOM树并最终渲染首屏。H5首页白屏时间的优化需要从资源、请求、渲染、缓存、监控等多个维度入手,结合具体业务场景不断调整优化策略。资源压缩和CDN加速是基础。异步加载和骨架屏可提升用户体验。监控分析。

2025-03-31 05:15:00 1426

原创 时序数据库 InfluxDB(六)

当 FOR 的时间间隔大于 GROUP BY time() 时,每次 CQ 的时间范围被扩大,但是每一个点仍然按照 GROUP BY time() 的时间间隔,因此每次 CQ 会写入多个点(如上述示例)。连续查询会根据 GROUP BY time() 的时间间隔确定作用的数据,每次执行所针对的数据的时间范围是 [ now() - GROUP BY time() ,now() )。如果 GROUP BY time(1h) ,在 8:00 执行,数据范围是 [ 7:00 , 8:00 )。

2025-03-30 05:15:00 1397

原创 时序数据库 InfluxDB(五)

所有备份都是全量备份,不支持增量备份。另外,恢复数据时,无法直接恢复到一个已经存在的数据库或者 RP 中,为此你只能先使用一个临时的数据库和 RP ,然后再重新将数据插入到已有的数据库中(比如使用 select …由于备份的格式进行过不兼容的更新,-portable 就是指定使用新的备份格式(强烈建议使用),-online 就是老的备份格式。备份和恢复的命令参数非常相似,参数的含义也是一目了然的,比如你可以备份指定的数据库、RP、shard,恢复到新的数据库、RP。

2025-03-29 05:15:00 591

原创 时序数据库 InfluxDB(四)

非字符串的值大约需要三个字节,字符串的值需要的空间大小不固定,需要由压缩情况确定。所有数据先写入到 WAL( Write Ahead Log )预写日志文件,并同步到 Cache 缓存中,当 Cache 缓存的数据达到了一定的大小,或者达到一定的时间间隔之后,数据会被写入到 TSM 文件中。为了更高效的存储大量数据,存储引擎会将数据进行压缩处理,压缩的输入和输出都是 TSM 文件,因此为了以原子方式替换以及删除 TSM 文件,存储引擎由 FileStore 负责调节对所有 TSM 文件的访问权限。

2025-03-28 05:15:00 531

原创 时序数据库 InfluxDB(三)

series-id-set-cache-size :使用内存缓存的 series 集的大小,由于 TSI 索引存储在了磁盘文件中,因此使用时需要额外的计算工作,但如果将索引结果缓存起来的话就可以避免重复的计算,提高查询性能。max-values-per-tag :每个 tag key 允许的最大 tag values 数量,默认十万,类似的,一旦达到上限,无法写入新的 tag value ,而向已经存在的 tag value 写入数据不受影响。设置为 0 则意味着没有限制。设置为 0 则意味着没有限制。

2025-03-27 05:15:00 454

原创 时序数据库 InfluxDB(二)

前两个部分没啥好说的,而 shard duration 和 shard group 的概念你可能会感到比较陌生。shard 是什么?先来看数据的层次结构:如果所示,一个 database 对应一个实际的磁盘上的文件夹,该数据库下不同的 RP 策略对应不同的文件夹。shard group 只是一个逻辑概念,并没有实际的磁盘文件夹,shard group 包含有一个或多个 shard。

2025-03-26 05:15:00 1204

原创 时序数据库 InfluxDB(一)

数据库种类有很多,比如传统的关系型数据库 RDBMS( 如 MySQL ),NoSQL 数据库( 如 MongoDB ),Key-Value 类型( 如 redis ),Wide column 类型( 如 HBase )等等等等,当然还有本系列文章将会介绍的时序数据库 TSDB( 如 InfluxDB )。

2025-03-25 05:15:00 1160

原创 时序数据库入门 | 时序数据库的特点及与传统数据库的区别详解

谈到近年来时序数据库的普及,我们不得不先聊聊时序数据,为什么它需要一种专门优化的数据库来处理?通用的关系数据库不能满足吗?所谓时序数据,非常通俗的角度来讲,就是一些随着时间变化而变化的值 (Value),同时这些值上面附带有一些 Key=Value 组成的标签。时序数据库(Time Series Database)如果按照 Wikipedia 的定义就是专门面向时序数据处理优化的数据库,它是领域数据库。

2025-03-24 05:15:00 731

原创 实时洞察 [特殊字符] 前端页面卡顿监测技术方案

前端卡顿通常指的是页面在渲染、交互或动画过程中,由于性能瓶颈而导致的界面响应迟滞的现象。页面渲染延迟:用户操作后,页面未能及时响应。动画不流畅:过渡或动画效果出现停顿或卡顿现象。输入延迟:用户输入(如键盘输入、鼠标点击)后,界面反应滞后。滚动卡顿:页面滚动过程中出现画面拖影或不平滑。卡顿通常由浏览器主线程被阻塞引起,而主线程的任务主要包括 DOM 渲染、JavaScript 执行、布局计算和绘制等。每当主线程任务过多,尤其是 JavaScript 执行时间过长时,卡顿现象就容易出现。

2025-03-23 05:15:00 742

原创 春招面试万字整理,全程拷打,干货满满

首先, 与 都能控制元素在页面的显示对于Computed:对于Watch:当想要执行异步或者昂贵的操作以响应不断的变化时,就需要使用watch。总结:运用场景:2. 子组件向父组件传值 (defineEmits)通过 来声明 emit 函数,用于触发父级组件监听的事件。3.子组件向父组件暴露属性和方法 (defineExpose + ref(获取子组件实例的引用))因为 的作用域是私有的,默认情况下,在父组件中使用 获取子组件实例时,会发现子组件的所有内部属性和方法都是不可访问的。通过 ,你

2025-03-22 05:15:00 662

原创 企业级埋点教学!到底多重要一看就知道

那埋点能带来什么作用呢?:如果观测到 xx 指标存在问题(不合实际、波动显著等),可触发报警让研发及时响应问题:通过相关的指标来认证 xx 需求是否带来了业务、技术收益(比如某次性能优化,减少了用户流失)分析用户行为:通过多项数据联动(指标下钻、漏斗分析等),观测用户行为本篇文章将默认大家。

2025-03-21 05:15:00 456

原创 99%的前端不知道!Chrome底层竟藏着这些黑科技

答:JS通过Event Loop管理异步任务。// 输出顺序:A → D → C → B因为微任务(Promise)优先级高于宏任务(setTimeout)。从多进程架构到云端融合,现代浏览器已不再是简单的“网页查看器”,而演变为连接本地与云端的超级操作系统。理解其底层原理,就像掌握了打开数字世界大门的钥匙——无论是应对面试还是构建下一代Web应用,都将游刃有余。

2025-03-20 05:15:00 1501

原创 mybatis+springboot+MySQL批量插入 1w 条数据

传统的单条 INSERT 语句逐行插入方式,在处理 1 万条数据时往往需要数秒,这不仅会导致事务锁竞争加剧,更可能引发连接超时等系统性风险那么如何优化这种的场景呢?让我们一起看看吧!

2025-03-19 05:15:00 593

原创 前端检测版本更新-Worker 项目实践

单页应用(Single Page Application,简称SPA)项目中,通过动态重载页面的部分内容来提高项目流畅性。然而该应用也存在弊端,当服务端发生更新,接口请求体和响应体结构发生变化,停留在客户端的项目依然访问的旧资源,未能同步更新,就可能导致项目报错。对于浏览器长时间保持打开的用户来说,当版本更新提示客户版本升级就很有必要。

2025-03-19 05:15:00 336

原创 前端集成Lodop实现复杂业务单据打印技术实践

多类型打印控制:通过精确的坐标计算实现标签打印、智能分页等复杂需求打印任务管理:引入队列机制确保打印任务有序执行动态模板系统:实现配置化模板生成,提升系统灵活性稳定性增强:完善的异常处理机制和校准方案。

2025-03-18 05:15:00 979

原创 pnpm的设计与npm的对比

在 macOS 系统下,npm 和 pnpm 都各有优缺点。npm 的传统方式使得全局包管理和依赖提升相对直观,但可能隐藏依赖关系带来的风险;而 pnpm 则通过独特的全局内容寻址存储和无依赖提升机制,实现了更高的效率和一致性,但同时也要求开发者对依赖管理有更明确的认知。

2025-03-17 05:15:00 549

原创 捕获错误 [特殊字符] 前端运行报错捕获技术方案

在本文中,我们深入探讨了前端报错捕获的多种技术方案,从全局错误监听器的设置到异步错误的处理,再到资源加载和接口请求错误的捕获,全方位地覆盖了前端应用中可能出现的各种错误场景。通过这些技术手段,我们能够在及时地收集和上报系统的错误信息,为项目质量提供了有力的数据支持。然而,在实际应用中页面报错监控仅能作为技术层面的观测指标,而无法直接等同于用户侧的稳定性体验指标。在实际场景中,我们常常会发现控制台出现大量报错,然而这些报错却并未对系统的正常运行造成实质性影响。

2025-03-17 05:15:00 1327

原创 本地缓存 Caffeine 中的时间轮(TimeWheel)是什么?

补全 Caffeine 对元素管理的机制。在创建有过期时间策略的 Caffeine 缓存时,它提供了三种不同的方法,分别为和,前两者的元素过期机制非常简单:通过遍历队列中的元素(遍历的是窗口区、试用区和保护区队列,有专用的写顺序队列),并用当前时间减去元素的最后访问时间(或写入时间)的结果值和配置的时间作对比,如果超过配置的时间,则认为元素过期。而为自定义过期策略,使用到了时间轮TimeWheel。它的实现相对复杂,在源码中相关的方法都会包含命名(变量;可变的),如。

2025-03-16 05:15:00 878

原创 详解 Java Condition 的 await 和 signal 等待通知机制

那Condition的await()方法可能更灵活,因为它可以被打断,或者设置超时时间,比如awaitUninterruptibly()、awaitNanos()等方法,提供了更多控制选项。比如,当生产者生产了一个物品后,调用队列不空条件的signal,这样只有消费者线程会被唤醒,而生产者线程可能在其他条件上等待,不会被影响。这样的实现会比使用synchronized更高效,因为每次唤醒的线程都是确实需要被唤醒的,而不是所有线程都被唤醒。机制通过多条件变量和显式锁控制,显著提升了线程协作的效率和灵活性。

2025-03-15 05:15:00 927

原创 java中的文件流File

/ 数据源文件对象 File srcFile = new File("./test/hello.txt");// 文件的名称 hello.txt System . out . println(srcFile . getName());// 文件的绝对路径 D:\javaprojiect\goodStudy\javaStudy\.\test\hello.txt System . out . println(srcFile . getAbsolutePath());

2025-03-14 05:15:00 678

day01_项目介绍和工程搭建.md

day01_项目介绍和工程搭建.md

2021-09-04

空空如也

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

TA关注的人

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