- 博客(465)
- 资源 (1)
- 收藏
- 关注
原创 响应式编程-基于Reactor模式WebFlux框架的Spring Gateway
响应式编程在一些java生态的框架中应用很多,如Spring Cloud Gateway、Spring AI等中,Spring Cloud Gateway依靠响应式编程框架WebFlux基于Netty实现了一个非阻塞的网关,解决传统网关请求量大时候的线程耗尽问题,另外对于日常AIGC生产一般的大模型流式数据返回也是使用到了响应式编程,这样可以第一时间拿到响应内容,提升用户体验。
2025-03-11 15:58:50
1084
原创 Java定时任务1_定时任务实现方式以及原理
背景背景在 Java 应用开发中,定时任务是一种常见的需求,它可以帮助我们自动化执行周期性的工作,如试卷拉取、检测超时任务退回、数据备份、定时通知等。Java 提供了多种方式来实现定时任务,如使用 Timer、ScheduledExecutorService 以及 Spring 框架中的 @Scheduled 注解等,或者更重一些的xxl-job等。
2025-03-11 09:48:47
692
原创 ElasticSearch学习篇19_《检索技术核心20讲》搜推广系统设计思想
主要是包含搜推广系统的基本模块简单介绍,另有一些流程、设计思想的分析。
2024-11-30 11:28:56
1112
原创 Spring Cloud配置热更新注解@RefreshScope原理使用坑 以及 @Value、@ConfigurationProperties注解原理
如果修改yaml配置文件将内容修改错了,比如节点重复、格式错误等,会造成@RefreshScope标注的Service动态刷新不可用,以至xxx项目产生事故。需要了解@RefreshScope相关原理,直到yaml、properties是如何被加载的,xxx项目中打了RefreshScope注解的Service类重构,将注解缩小到只刷新配置,这样在修改配置文件之后,即使配置错误,重新创建新的配置实例会失败,不会影响相关Service。
2024-11-25 18:47:02
1424
3
原创 ElasticSearch学习篇18_《检索技术核心20讲》LevelDB设计思想
一些常见的设计思想以及基于LSM树的LevelDB是如何利用这些设计思想优化存储、检索效率的。
2024-11-22 16:13:30
928
原创 ElasticSearch学习篇17_《检索技术核心20讲》最邻近检索-局部敏感哈希、乘积量化PQ思路
场景在搜索引擎和推荐引擎中,对相似文章去重是一个非常重要的环节,另外是拍照识花、摇一摇搜歌等场景都可以使用它快速检索。基于敏感性哈希的检索更擅长处理字面上的相似而不是语义上的相似。
2024-11-19 14:22:24
1019
原创 AI实践与学习8-AI Agent Workflow助力解题和验证答案置信度
之前在试着提高解题正确率,目标100%,发现外部知识不足仅依靠大模型的话比较困难。而试题人工生产成本巨大。本质因为大模型生成内容会有幻觉特点,也就是说解答的试题正确性不太好评判,直接解答试题生产场景不太可控。后面考虑调用OpenAI解题的时候,像xxx那样通过输出置信度来帮助判断答案的正确性 or 其他形式只要能保证LLM生成答案是可靠(程序判断)的。
2024-08-30 15:23:00
1028
原创 ElasticSearch学习篇14_《检索技术核心20讲》进阶篇之大倒排索引
学习极客实践课程《检索技术核心20讲》,文档形式记录笔记。主要是海量数据的大倒排索引的一些原理设计思想,ES底层就是基于这些设计思想以及原理,主要涉及读写分离、索引分层等思想。
2024-07-08 14:28:59
1406
原创 AI实践与学习7_AI解场景Agent应用预研demo
Agent智能体(Agent)是指在特定环境中能够自主感知、决策和行动的计算机系统或软件实体。自主性(Autonomy):Agent智能体能够独立运行,不需要持续的人工干预。它们可以根据自身的感知和内部状态做出决策。感知能力(Perception):Agent智能体能够感知其环境,通过传感器或数据输入获取外部信息。这些信息可以是物理环境中的数据,也可以是其他系统或Agent智能体提供的信息。决策能力(Decision-Making):Agent智能体能够基于感知到的信息和内部状态进行分析和决策。
2024-07-05 09:46:23
1058
原创 ElasticSearch学习篇13_《检索技术核心20讲》进阶篇之LSM树
学习极客实践课程《检索技术核心20讲》,文档形式记录笔记。LSM树的原理。
2024-06-16 11:36:07
1292
原创 AI实践与学习5-AI解题场景RAG应用预研demo
AI解题场景现状,教研测评文档:xxx下面预研使用langchain4j构建题库已经生产的试题到Milvus本地知识库,搭建RAG检索增强链,测试选用高中英语单选、小学翻译 BAD CASE 进行测评,随机选取100高中英语单选进行RAG(Solr)、RAG(Milvus)测试,得出测评结论。结论:召回的内容对RAG的效果起决定作用,关于召回的内容使用不同的检索方式效果也不同,测评过程关于召回方式的一些思考测试的100测试集初步表示RAG(Solr)效果要好于直接LLM解答试题。测试的100测试集初步表
2024-06-15 10:34:12
1695
原创 ElasticSearch学习篇12_《检索技术核心20讲》基础篇
学习极客实践课程《检索技术核心20讲》https://time.geekbang.org/column/article/215243课程分为基础篇、进阶篇、系统案例篇主要记录企业课程学习过程课程大纲关键点,以文档形式记录笔记。检索技术:它是更底层的通用技术,它研究的是如何将我们所需的数据高效地取出来。不管是在数据库和搜索引擎里,还是在新闻推荐平台、电商平台、生活服务平台中,如果我们把这些业务场景抽象出来,它们的本质其实都是在海量的信息中,快速筛选出我们需要的内容或服务,而这都和检索技术紧密相关。数组的特点:
2024-05-26 16:17:46
1298
原创 AI实践与学习4_大模型之检索增强生成RAG实践
论文Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (知识密集型 NLP 任务的检索增强生成)作者们探讨了如何通过结合预训练的语言模型和非参数记忆(即检索机制)来提高自然语言处理(NLP)任务的性能,特别是在需要大量知识密集型任务中。预训练的神经语言模型已经显示出从数据中学习大量深入知识的能力,但这些模型无法轻松扩展或修改它们的记忆,也不能直接提供对其预测的洞察,有时还可能产生“幻觉”。
2024-04-14 19:40:07
1316
原创 ElasticSearch学习篇11_ANNS之基于图的NSW、HNSW算法
ANNS(Approximate Nearest Neighbor Search)翻译为近似最近搜索。是指在大型数据集中找到给定查询点的最近邻点。ANNS 旨在最小化计算成本并同时高效找到近似最近邻。目的:ANNS旨在高维空间中快速找到与查询点近似最近的邻居,牺牲一定的精确度以换取搜索速度的提升。原理:通过构建特定的数据结构(如基于空间划分的KD-Tree、局部敏感哈希LSH等)或使用特定的算法逻辑来减少在高维空间中搜索最近邻所需的计算量。应用场景。
2024-03-29 14:59:36
1739
原创 ElasticSearch学习篇10_Lucene数据存储之BKD动态磁盘树(论文Bkd-Tree: A Dynamic Scalable kd-Tree)
基础的数据结构如二叉树衍生的的平衡二叉搜索树通过左旋右旋调整树的平衡维护数据,靠着二分算法能满足一维度数据的logN时间复杂度的近似搜索。对于大规模多维度数据近似搜索,Lucene采用一种BKD结构,该结构能很好的空间利用率和性能。本片博客主要学习常见的多维数据搜索数据结构以及BKD结构搜索过程以及原理。
2024-03-10 21:51:14
2837
2
原创 JVM3_数据库连接池虚引用ConnectionFinalizerPhantomReference引起的FullGC压力问题排查
按照收集策略划分新生代收集器:Serial、ParNew、Parallel Scavenge;老年代收集器:Serial Old、Parallel Old、CMS;整堆分区收集器:G1、ZGC、Shenandoah吞吐量优先、停顿时间优先吞吐量优先:Parallel Scavenge收集器、Parallel Old 收集器。停顿时间优先:CMS(Concurrent Mark-Sweep)收集器。吞吐量与停顿时间适用场景吞吐量优先:交互少,计算多,适合在后台运算的场景。
2024-03-07 19:57:18
1868
原创 AI实践于学习3_大模型之AI解题提示词优化实践
提示词只是让LLM具有一定的推理能力,并不能直接提高模型能力,可以借助CoT思维链、提示词规则一定程度微调模型。尽量使用新模型,通用性能更好,支持提示词规则更多。
2024-02-02 09:24:18
1369
原创 ElasticSearch学习篇9_文本相似度计算方法现状以及基于改进的 Jaccard 算法代码实现与效果测评
目前基于集合的Jaccard算法以及基于编辑距离的Levenshtein在计算文本相似度场景中有着各自的特点,为了优化具体的计算时间抖动超时问题,需要学习此方面知识,本文主要内容为文本相似度计算方法的现状、Jaccard、Levenshtein算法实现基本原理以及代码实现论文基于改进的 Jaccard 系数文档相似度计算方法的算法。这样,即使两个主题的语义相似度较低,但由于它们之间可能存在隐含的相关关系,搜索引擎可以更好地理解用户的真实需求,并提供更准确、相关的搜索结果。我们要判断这两篇文章是否相似。
2023-12-22 19:14:54
4857
2
原创 ElasticSearch学习篇8_Lucene数据落盘之数据压缩编码(vint、zigzag、writeTLong等)
Lucene全文检索主要分为索引、搜索两个过程,对于索引过程就是将文档磁盘存储然后按照指定格式构建索引文件,其中涉及数据存储一些压缩、数据结构设计还是很巧妙的,下面主要记录学习过程中的StoredField、DocValue以及磁盘BKD Tree的一些相关知识。Lucene 原理与代码分析完整版.pdf美团外卖搜索基于 Elasticsearch 的优化实践。
2023-12-17 16:24:58
4673
1
原创 AI实践与学习2_大模型之AI解题提示词设计实践分享(LLM基本原理通俗理解)
想要GPT模型回答的更好,更好的应用在业务场景中,需要考虑Prompt的写法规则、模型参数、渲染方式(流式响应)等下面主要结合开源文档梳理一些写Prompt的一些技巧。
2023-11-19 21:49:39
2565
原创 AI实践与学习1_NLP文本特征提取以及Milvus向量数据库实践
随着NLP预训练模型(大模型)以及多模态研究领域的发展,向量数据库被使用的越来越多。在XOP亿级题库业务背景下,对于试题召回搜索单单靠着ES集群已经出现性能瓶颈,因此需要预研其他技术方案提高试题搜索召回率。现一个方案就是使用Bert等模型提取试题题干特征,然后存储到向量数据库,检索试题先走向量数据库,拿到具体的试题ID等信息在走ES进行相似题召回,从而提高搜索的性能。需要考虑的就是特征提取的效率,Milvus的性能(比较吃服务器资源),然后进行评估。
2023-11-19 21:38:11
2244
2
原创 ElasticSearch学习篇6_ES实践与Lucene对比及原理分析技术分享小记
QBM、MFS的试题检索、试题查重、公式转换映射等业务场景以及XOP题库广泛使用搜索中间件,业务场景有着数据量大、对内容搜索性能要求高等特点,其中XOP题库数据量更是接近1亿,对检索性能以及召回率要求高。目前QBM、MFS使用的搜索中间件是Solr,后续需要升级为ES。看的书是《ElasticSearch源码解读与优化实战》的前半部分(与这篇博客部分内容重合),主要是ES的一些工程模块,分布式集群的一些理论知识。
2023-11-19 21:15:49
1062
原创 ElasticSearch学习篇7_拜占庭将军问题与分布式一致性算法(Raft、Paxos)理解
拜占庭将军问题提供了对分布式共识问题的一种情景化描述,为理解和分类现有众多分布式一致性协议和算法提供了框架,现有的分布式一致性算法主要分为两类一类是故障容错算法:即非拜占庭算法,解决的是分布式系统存在故障但是不存在被恶意攻击的场景下的共识问题,主要针对消息丢失、重复等问题,面对消息被篡改就无力了,一般用于局域网场景下的分布式算法,如Paxos、Raft、ZAB协议等。一类是拜占庭算法:既可以解决分布式系统故障,又可解决恶意攻击的问题,如在数字货币的区块链技术中,属于此类算法有PBFT、PoW算法。
2023-09-18 23:55:14
1139
原创 RocketMQ实践与原理分析
QBM之前使用的消息中间件是ActiveMQ,后续需要升级为RocketMQ。MQ广泛应用于很多业务场景中,主要的作用异步解耦削峰协议和特点消息有序性定时消息批量消息广播消息消息过滤服务器触发的重新投递消息存储ActiveMQExclusive (独自)Consumer or Exclusive Queues can ensure orderingSupportedSupportedSupportedKafkaRocketMQSupportedSupported。
2023-09-16 22:30:25
654
原创 一次【千万数据表连接条件查询的SQL慢查询分析优化】记录
当查询只需要从索引中获取所需的数据,而不需要访问表的实际行数据时,MySQL 可以直接利用索引来满足查询需求,避免了额外的表访问操作,提高了查询性能。分析:使用子查询首先根据operator、status查询question_tasks.id,然后再回表,虽然多了一次查询,但是级别是ref,也就是使用了非唯一索引operator,可以看到filtered为50。所以,一般来说,我们希望 filtered 的值越大越好,因为这意味着查询结果集中的数据更符合过滤条件,从而提高查询性能。
2023-07-17 17:52:45
781
原创 简单扫码登录原理分析与本地测试
参考:https://www.cnblogs.com/johnlearning/p/16205875.html前言:简单分析扫码登录流程。场景:以网页版微信为例,我们在 PC 端点击二维码登录后,浏览器页面会弹出二维码图片,此时打开手机微信扫描二维码,PC 端随即显示 “正在扫码”,手机端点击确认登录后,PC 端就会显示 “登陆成功” 了。
2023-07-15 17:44:22
655
原创 Maven学习1_将项目打包jar然后上传到GitHub、Nexus Sonatype仓库、搭建Sonatype私服
主要学习记录Maven仓库相关知识,如何借助上传项目jar包到GitHub、Nexus Sonatype,,以及搭建自己的Nexus Sonatype私服,然后在Maven项目的pom文件引入使用,参考Maven官网文档:https://central.sonatype.org/publish/publish-maven/
2023-06-23 22:26:28
2123
原创 《HTTP权威指南 陈涓 赵振平》读书笔记
1、POST和PUT的区别POST:将客户端数据发送到一个服务器网关应用程序PUT:将来自客户端额数据存储到一个命名的的服务器资源中2、HTTP报文:格式是纯文本,不是二进制代码,可以很方便的调试和拓展。报文分为请求报文和响应报文,格式很类似,主要包含以下三个部分:起始行、首部字段、(空行)、主体。3、HTTP协议:应用程协议,网络通信的底层细节由TCP/IP传输协议实现,保证无差错、按序传输、流式数据(可以在任何时刻以任意尺寸将数据发送出去)
2023-05-19 17:01:24
1068
原创 MathType MTEF v.5学习文档
MathType是一款公式工具,可以作为插件安装到office等软件,其将公式存储两部分wmf文件和二进制objectOle对象,其中公式存储是以MTEF语言内嵌在这两部分中,这是一款MathType私有的技术规范,学习MTEF相关知识为为后续公式工作打基础。MathType是一个由Design Science创建的软件应用程序,允许创建数学符号以纳入桌面和网络应用程序中。在2017年Design Science被Maths for More收购后,他们的WIRIS网络方程编辑软件被重新命名为MathT
2023-03-06 22:32:00
1031
原创 ElasticSearch学习篇5_《Elasticsearch源码解读与优化实战》张超-读书笔记
1、初学者牵强理解,ES的数据表示形式与传统的关系型数据库类比,indices(相当于数据库)、types(相当于表)、fileds(相当于字段)、documents(相当于行数据),后续更新的版本可能会删除types的概念,直接一个indeices下对应documents2、倒排索引:采用Lucene倒排作为底层,这种结构适用于快速的全文搜索。实现原理:为了创建倒排索引,首先需要将文档拆分为独立的词条tokens,然后创建一个包含所有不重复的词条的**排序列表**,然后列出每个词条出现在哪个文档里面。
2023-02-16 21:24:32
1263
原创 《深入理解RPC框架原理与实现 华钟明》使用Netty、Zookeeper等实现一个简单的RPC框架、自定义注解、SPI机制实践与原理分析
深入理解RPC框架原理与实现 华钟明》读书笔记接下来就是实践练习环节,结合书中最简易的实现的RPC的源码和一些开源的源码,来自己一步一步手敲出一个自己升级版的RPC…通过实践,可以对Netty、Zookeeper等中间件、自定义注解、SPI机制、常见的序列化协议以及网络编程有一定的理解…一个RPC框架需要具备远程通信方式、通信协议、序列化方式等组件,需要动态代理实现本地存根等。
2022-09-16 10:39:34
1321
原创 常用日志解决方案实践与学习-基于AOP利用注解实现日志记录原理分析
自定义了四个注解@OperationLog :核心功能体现,将注解标注指定方法上面,然后指定一些模板,以及 SpringEL 从上下文、方法参数 等取值。
2022-09-14 18:32:28
1237
原创 常用日志解决方案实践与学习
一个功能完善的日志系统是企业在日常产品、项目开发中是必须的,接触过bug fix的同学应该深有体会一份记录详细完善的日志能提升的小笼包,之前参与项目架构技术会的时候,谈论到了日志技术的选型及实现,鉴于对该方面还不太熟悉,决定需要花时间学习实践一下,拿着常见成熟的轮子跑一跑…学习分析下原理…一、利用中间件Canal来记录操作日志原理分析canal实践二、通过文件形式记录日志操作人如何记录操作日志如何与系统日志分开基于注解如何生成可读的日志方案基于AOP注解日志实现原理分析三、ELK日志解决
2022-09-08 11:52:19
2000
原创 《深入理解RPC框架原理与实现 华钟明》读书笔记
这本书更像是全面系统的讲解RPC,内容可以连贯起来,从计算机处理器发展到RPC的诞生,后面讲几种常见的RPC组件、通信协议、序列化协议,虽然内容不是很深入,但是对于小白较易理解,便于建立起框架知识,如从Socket到Java NIO 再到 Netty 、RPC等框架来讲解。挺不错的。算对得起100大洋。下面主要记录一下点,虽然偏理论,点到线到面才能形成自己的思维。主要讲RPC出现是为了解决什么问题,以及RPC的定义概念,概括一个RPC远程调用过程需要经历哪几个阶段?为什么调用本地接口就能实现调用远程的方法?
2022-07-14 16:44:55
2106
原创 Nebula Graph学习篇2_版本v2.6.1之前的bug导致OOM
nebula graph 图数据库v2.6.1版本内存飙升OOM的bug
2022-06-18 17:58:13
1746
易语言5.6.zip
2020-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人