- 博客(1042)
- 资源 (1)
- 收藏
- 关注
原创 探索 RAG(检索增强生成)
RAG 技术不仅为 AI 应用带来了更高的准确性和灵活性,还为开发者提供了一种创新的思路,能够开发出更智能、更贴合用户需求的 AI 系统。通过本文的介绍以及代码示例,相信大家对 RAG 技术有了更深入的了解,期待在未来,RAG 技术能够在更多领域开花结果,为我们的生活和工作带来更多便利与惊喜。
2025-04-04 05:15:00
335
原创 npm和npx的区别
Node.js 的包管理工具,用于安装、管理和发布 JavaScript 包。的配套工具,用于直接执行包中的命令,,可以更高效地管理依赖和执行命令。
2025-04-03 05:15:00
296
原创 H5首页白屏时间太久问题优化
白屏时间通常指的是用户从点击页面到看到首屏内容DNS解析:浏览器解析域名的IP地址。TCP连接:建立与服务器的TCP连接(三次握手)。请求与响应:浏览器向服务器发起请求,服务器返回HTML、CSS、JS、图片等资源。页面解析与渲染:浏览器解析HTML、CSS,执行JS,构建DOM树和CSSOM树并最终渲染首屏。H5首页白屏时间的优化需要从资源、请求、渲染、缓存、监控等多个维度入手,结合具体业务场景不断调整优化策略。资源压缩和CDN加速是基础。异步加载和骨架屏可提升用户体验。监控分析。
2025-03-31 05:15:00
1397
原创 时序数据库 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
1349
原创 时序数据库 InfluxDB(五)
所有备份都是全量备份,不支持增量备份。另外,恢复数据时,无法直接恢复到一个已经存在的数据库或者 RP 中,为此你只能先使用一个临时的数据库和 RP ,然后再重新将数据插入到已有的数据库中(比如使用 select …由于备份的格式进行过不兼容的更新,-portable 就是指定使用新的备份格式(强烈建议使用),-online 就是老的备份格式。备份和恢复的命令参数非常相似,参数的含义也是一目了然的,比如你可以备份指定的数据库、RP、shard,恢复到新的数据库、RP。
2025-03-29 05:15:00
569
原创 时序数据库 InfluxDB(四)
非字符串的值大约需要三个字节,字符串的值需要的空间大小不固定,需要由压缩情况确定。所有数据先写入到 WAL( Write Ahead Log )预写日志文件,并同步到 Cache 缓存中,当 Cache 缓存的数据达到了一定的大小,或者达到一定的时间间隔之后,数据会被写入到 TSM 文件中。为了更高效的存储大量数据,存储引擎会将数据进行压缩处理,压缩的输入和输出都是 TSM 文件,因此为了以原子方式替换以及删除 TSM 文件,存储引擎由 FileStore 负责调节对所有 TSM 文件的访问权限。
2025-03-28 05:15:00
523
原创 时序数据库 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
432
原创 时序数据库 InfluxDB(二)
前两个部分没啥好说的,而 shard duration 和 shard group 的概念你可能会感到比较陌生。shard 是什么?先来看数据的层次结构:如果所示,一个 database 对应一个实际的磁盘上的文件夹,该数据库下不同的 RP 策略对应不同的文件夹。shard group 只是一个逻辑概念,并没有实际的磁盘文件夹,shard group 包含有一个或多个 shard。
2025-03-26 05:15:00
1191
原创 时序数据库 InfluxDB(一)
数据库种类有很多,比如传统的关系型数据库 RDBMS( 如 MySQL ),NoSQL 数据库( 如 MongoDB ),Key-Value 类型( 如 redis ),Wide column 类型( 如 HBase )等等等等,当然还有本系列文章将会介绍的时序数据库 TSDB( 如 InfluxDB )。
2025-03-25 05:15:00
1096
原创 时序数据库入门 | 时序数据库的特点及与传统数据库的区别详解
谈到近年来时序数据库的普及,我们不得不先聊聊时序数据,为什么它需要一种专门优化的数据库来处理?通用的关系数据库不能满足吗?所谓时序数据,非常通俗的角度来讲,就是一些随着时间变化而变化的值 (Value),同时这些值上面附带有一些 Key=Value 组成的标签。时序数据库(Time Series Database)如果按照 Wikipedia 的定义就是专门面向时序数据处理优化的数据库,它是领域数据库。
2025-03-24 05:15:00
682
原创 实时洞察 [特殊字符] 前端页面卡顿监测技术方案
前端卡顿通常指的是页面在渲染、交互或动画过程中,由于性能瓶颈而导致的界面响应迟滞的现象。页面渲染延迟:用户操作后,页面未能及时响应。动画不流畅:过渡或动画效果出现停顿或卡顿现象。输入延迟:用户输入(如键盘输入、鼠标点击)后,界面反应滞后。滚动卡顿:页面滚动过程中出现画面拖影或不平滑。卡顿通常由浏览器主线程被阻塞引起,而主线程的任务主要包括 DOM 渲染、JavaScript 执行、布局计算和绘制等。每当主线程任务过多,尤其是 JavaScript 执行时间过长时,卡顿现象就容易出现。
2025-03-23 05:15:00
726
原创 春招面试万字整理,全程拷打,干货满满
首先, 与 都能控制元素在页面的显示对于Computed:对于Watch:当想要执行异步或者昂贵的操作以响应不断的变化时,就需要使用watch。总结:运用场景:2. 子组件向父组件传值 (defineEmits)通过 来声明 emit 函数,用于触发父级组件监听的事件。3.子组件向父组件暴露属性和方法 (defineExpose + ref(获取子组件实例的引用))因为 的作用域是私有的,默认情况下,在父组件中使用 获取子组件实例时,会发现子组件的所有内部属性和方法都是不可访问的。通过 ,你
2025-03-22 05:15:00
658
原创 企业级埋点教学!到底多重要一看就知道
那埋点能带来什么作用呢?:如果观测到 xx 指标存在问题(不合实际、波动显著等),可触发报警让研发及时响应问题:通过相关的指标来认证 xx 需求是否带来了业务、技术收益(比如某次性能优化,减少了用户流失)分析用户行为:通过多项数据联动(指标下钻、漏斗分析等),观测用户行为本篇文章将默认大家。
2025-03-21 05:15:00
446
原创 99%的前端不知道!Chrome底层竟藏着这些黑科技
答:JS通过Event Loop管理异步任务。// 输出顺序:A → D → C → B因为微任务(Promise)优先级高于宏任务(setTimeout)。从多进程架构到云端融合,现代浏览器已不再是简单的“网页查看器”,而演变为连接本地与云端的超级操作系统。理解其底层原理,就像掌握了打开数字世界大门的钥匙——无论是应对面试还是构建下一代Web应用,都将游刃有余。
2025-03-20 05:15:00
1476
原创 mybatis+springboot+MySQL批量插入 1w 条数据
传统的单条 INSERT 语句逐行插入方式,在处理 1 万条数据时往往需要数秒,这不仅会导致事务锁竞争加剧,更可能引发连接超时等系统性风险那么如何优化这种的场景呢?让我们一起看看吧!
2025-03-19 05:15:00
582
原创 前端检测版本更新-Worker 项目实践
单页应用(Single Page Application,简称SPA)项目中,通过动态重载页面的部分内容来提高项目流畅性。然而该应用也存在弊端,当服务端发生更新,接口请求体和响应体结构发生变化,停留在客户端的项目依然访问的旧资源,未能同步更新,就可能导致项目报错。对于浏览器长时间保持打开的用户来说,当版本更新提示客户版本升级就很有必要。
2025-03-19 05:15:00
326
原创 前端集成Lodop实现复杂业务单据打印技术实践
多类型打印控制:通过精确的坐标计算实现标签打印、智能分页等复杂需求打印任务管理:引入队列机制确保打印任务有序执行动态模板系统:实现配置化模板生成,提升系统灵活性稳定性增强:完善的异常处理机制和校准方案。
2025-03-18 05:15:00
960
原创 pnpm的设计与npm的对比
在 macOS 系统下,npm 和 pnpm 都各有优缺点。npm 的传统方式使得全局包管理和依赖提升相对直观,但可能隐藏依赖关系带来的风险;而 pnpm 则通过独特的全局内容寻址存储和无依赖提升机制,实现了更高的效率和一致性,但同时也要求开发者对依赖管理有更明确的认知。
2025-03-17 05:15:00
538
原创 捕获错误 [特殊字符] 前端运行报错捕获技术方案
在本文中,我们深入探讨了前端报错捕获的多种技术方案,从全局错误监听器的设置到异步错误的处理,再到资源加载和接口请求错误的捕获,全方位地覆盖了前端应用中可能出现的各种错误场景。通过这些技术手段,我们能够在及时地收集和上报系统的错误信息,为项目质量提供了有力的数据支持。然而,在实际应用中页面报错监控仅能作为技术层面的观测指标,而无法直接等同于用户侧的稳定性体验指标。在实际场景中,我们常常会发现控制台出现大量报错,然而这些报错却并未对系统的正常运行造成实质性影响。
2025-03-17 05:15:00
1299
原创 本地缓存 Caffeine 中的时间轮(TimeWheel)是什么?
补全 Caffeine 对元素管理的机制。在创建有过期时间策略的 Caffeine 缓存时,它提供了三种不同的方法,分别为和,前两者的元素过期机制非常简单:通过遍历队列中的元素(遍历的是窗口区、试用区和保护区队列,有专用的写顺序队列),并用当前时间减去元素的最后访问时间(或写入时间)的结果值和配置的时间作对比,如果超过配置的时间,则认为元素过期。而为自定义过期策略,使用到了时间轮TimeWheel。它的实现相对复杂,在源码中相关的方法都会包含命名(变量;可变的),如。
2025-03-16 05:15:00
866
原创 详解 Java Condition 的 await 和 signal 等待通知机制
那Condition的await()方法可能更灵活,因为它可以被打断,或者设置超时时间,比如awaitUninterruptibly()、awaitNanos()等方法,提供了更多控制选项。比如,当生产者生产了一个物品后,调用队列不空条件的signal,这样只有消费者线程会被唤醒,而生产者线程可能在其他条件上等待,不会被影响。这样的实现会比使用synchronized更高效,因为每次唤醒的线程都是确实需要被唤醒的,而不是所有线程都被唤醒。机制通过多条件变量和显式锁控制,显著提升了线程协作的效率和灵活性。
2025-03-15 05:15:00
909
原创 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
672
原创 2025年时序数据库发展方向和前景分析
综上所述,2025年的时序数据库领域正处于高速发展阶段:市场规模持续扩大,越来越多厂商加入竞争;技术上围绕高性能和新场景不断创新;各主流产品在写入、查询、存储等方面各展所长并百花齐放;用户采用度在物联网、金融、运维等领域节节攀升,开源生态欣欣向荣。可以预见,随着实时数据在数字化业务中的价值凸显,时序数据库将在未来扮演更加重要的角色。从目前趋势看,
2025-03-13 05:15:00
911
原创 开发人员都应该注意的CR规范!降低性能损耗[特殊字符][特殊字符][特殊字符]
代码规范是我们老生常谈的一个话题,我这里想聊的并不是Pretty与EsLint这些能表面规范代码工具的作用,而是我们开发者在开发中无意间导致性能额外损耗的代码规范。虽然优化的性能较少,但是庞大的项目而言这也将是比较大的优化之一,同时代码的可维护性也将有所提高🚀🚀🚀。
2025-03-12 05:15:00
772
原创 Go 共享内存并发:从入门到精通,这一篇就够了!
共享内存并发是 Go 语言中实现高性能并发应用的重要技术。通过理解其原理、掌握其用法,并避免常见的陷阱,你可以编写出高效、可靠的并发程序。
2025-03-12 05:15:00
1396
原创 前端后端测试程序员必备的查看后端日志技巧
日常工作中不管是前端、后端还是测试,其实我们都离不开日志,尤其对于后端来说日志更加重要,代码中合理地打印日志,能极大地提高我们定位和排查问题的效率。前端平时更多关注界面上的东西,习惯直接F12在控制台 network 中查看接口响应的数据,或者通过 console 来直接打印前端代码中的日志,所以也导致即使工作了几年还不会登录到服务器上查看日志。我以前也经历过这样的阶段,那个时候看见别的前端在小黑窗里敲了几个字母就能查看日志感觉好厉害。
2025-03-11 06:15:00
754
原创 [特殊字符] 如何修改已经提交到远程仓库的 Commit 作者信息
修改提交记录并不难,但它可能会对提交历史产生很大的影响,尤其是已经推送到远程的情况下。所以在操作之前,一定要和团队沟通好,确保大家能够配合这次变更。大致操作就是 5 步:检查工作区 ➡️ 使用交互式 rebase ➡️ 修改作者信息 ➡️ 继续处理其余提交 ➡️ 强制推送。按照这套流程,一步步下来搞定 ✅。🎁 最后,我建议可以先在一个测试分支上练练手,把操作熟悉透了再处理正式分支。🚀🎊。
2025-03-11 05:15:00
724
原创 扫码登录流程及状态流转分析
服务设计扫码登录本身涉及到的服务不多,我们重点关注的可能就是一个登陆模块的服务另外会有一个网关服务,这个是任何业务都有的除了服务本身,还会涉及到两个不同的需要区分开的设备端:PC端和手机端PC端是需要登录的一方,手机端是已经登录的,要通过扫码帮助PC登陆的一方存储设计我们要存的是二维码信息,在扫码登录过程中,这个二维码是不断变化的, 最终确认之后会生成一个 PC Token,一个设备的登录凭证就是一个Token,也就是一个设备一个Token。
2025-03-10 05:15:00
1001
原创 哪些业务场景更适合用MongoDB?何时比MySQL/PostgreSQL好用?
场景案例:滴滴司机的资料(车辆信息、接单记录、评价标签)通过阿里云DTS实现数据同步,使风控决策速度提升70%实战案例:某智能电表厂商每天产生2亿条数据。生活案例:美团外卖的"3公里内餐厅"什么时候不该用MongoDB?一、动态数据就像"盲盒"(1)快速迭代的业务。二、海量数据洪峰场景。三、中国特色地理场景。
2025-03-09 05:15:00
408
原创 小红书笔记详情 API 接口的开发、应用与收益
通过这些接口,开发者可以构建自己的应用,如内容分析工具、笔记推荐系统、数据爬虫等。小红书笔记详情 API 接口为开发者提供了一个强大的工具,能够帮助他们快速获取和处理笔记内容。通过该接口,开发者可以构建各种创新的应用场景,如内容分析工具、笔记推荐系统、数据爬虫等。这些应用不仅能够提升用户体验,还能帮助内容创作者和品牌方提高运营效率,创造新的商业模式。
2025-03-09 05:15:00
808
原创 前端开发,要不要学鸿蒙?
对前端开发者而言,学习鸿蒙的价值远非“多学一个框架”这般简单:相比于从零学习Android/iOS,前端开发者利用现有JS/TS经验,可在1-2个月内低成本完成鸿蒙开发技能迁移,从底层的视角,帮助前端开发者了解更深层的“界面开发”。同时,其“一次开发多端部署”特性,使前端开发者能快速切入智能家居、车载系统等万亿级赛道,或许能在万物互联时代占据先发优势。24年的鸿蒙还不是很稳定,官方版本发布还是停频繁的,新的版本不兼容低版本,导致应用需要调整的事情还是有一些的。但2025年了,版本应该会稳定一些吧?
2025-03-08 05:15:00
701
原创 你可能不知道的图片加载相关知识
JavaScript 实现图片加载的方式有很多种,每种方法都有其适用场景和优缺点。从最简单的到较为复杂的fetch与Blob,以及现代的懒加载和canvas操作,开发者可以根据项目需求选择合适的实现方式。:适用于需要动态加载并控制图片加载生命周期的场景。<img>标签:适用于传统的静态加载,浏览器会自动处理很多细节。fetch与Blob:适用于需要灵活控制请求、缓存策略或结合其他资源加载的场景。懒加载:提升页面性能,特别适用于图片数量较多、需要优化加载顺序的情况。Canvas。
2025-03-07 05:15:00
686
原创 重新认识一下redis 的lua脚本 和 事务
主要描述了Redis 事务、lua脚本、pipeline 执行过程中出错是如何处理的。以及 对redis 的原子操作以及事务的概念做了阐述,区别于数据库事务。记住redis 事务 、 lua脚本在执行期间出错,不可回滚❗❗❗EXEC。
2025-03-06 05:15:00
1739
原创 MQ的消息可靠性
定义普通队列和死信队列,并设置死信交换器。// 创建普通交换器和队列 channel . exchangeDeclare(EXCHANGE_NAME , BuiltinExchangeType . DIRECT , true);// 创建死信交换器和队列 channel . exchangeDeclare(DLX_NAME , BuiltinExchangeType . DIRECT , true);
2025-03-06 05:00:00
345
原创 网关走负载均衡的时候,会走到服务与注册中心的负载均衡吗?如果是的话,走服务与注册中心的负载均衡就可以了,为什么还要走网关的负载均衡
是的,网关会在负载均衡时走到服务与注册中心,并且需要网关的负载均衡,原因如下:
2025-03-05 05:15:00
598
原创 多线程导出报表
有一个企业级的报表系统,用户需要导出包含大量数据的报表,比如销售报表、财务报表等。这些报表可能涉及多个数据源(如数据库、文件等),并且数据量较大。如果使用单线程处理,可能会导致用户等待时间过长,甚至超时。因此,使用多线程可以显著提高报表导出的速度。
2025-03-05 05:00:00
438
原创 2025年了,令人唏嘘的Angular,现在怎么样了
Angular虽然在国内市场一蹶不振,但是在国际市场一直默默耕耘10年。它作为一站式解决方案的框架,虽然牺牲了灵活性,但是也为开发者提供了沉浸式开发的选择!
2025-03-04 05:15:00
1549
原创 前端性能优化的几个大招(理论+实践,看完就是Leader水平)
性能优化,一个掣肘用户体验的关键模块。它没有固定的标准定义或唯一的解决方案。但是我们从整个项目的开发-部署-用户体验的整个过程中,总能摸到很多有普适性的规范或者优化理念。我们的目的是什么?优化啥?应当是:更快的加载和响应速度、更稳定的功能表现、更简洁的代码与架构设计、更好用更人性化。好吧,也没有那么人话…那知道了我们性能优化的目的,我们要如何搞,才可以达到这个目的呢?在我的脑图中,我一直将性能优化分为2大模块:这是从浏览器的渲染流程来进行分类的(老生常谈了,知道的可以跳过)在具体实践中,可以从以下几个方面着
2025-03-03 10:16:34
1399
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人