- 博客(78)
- 收藏
- 关注
原创 基于RAG的搜索增强
RAG技术:搜索领域的革新突破 摘要:检索增强生成(RAG)技术通过结合信息检索与文本生成,显著提升了搜索引擎的精准度和丰富性。该系统由检索器和生成器组成:检索器采用多种向量化方法(如BERT、Word2Vec)将文档转换为向量表示,并利用相似度算法(余弦相似度等)快速检索相关信息;生成器则整合检索结果生成精准连贯的回答。RAG技术优势在于提升复杂查询的准确性、提供多源整合的全面答案,并能实时更新检索最新信息。这一创新为搜索领域带来了突破性进展,有效解决了传统搜索精准度不足和结果单一的问题。
2025-08-12 14:51:17
932
原创 doris `unicode` 多语言混合类型分词与elasticsearch分词差异
Doris的Unicode分词器采用字符级切分,支持多语言混合文本处理,具有轻量级、无需配置等优势,但缺乏语义分词和高级功能。Elasticsearch提供丰富的分词器和语义支持,适合复杂搜索场景,但配置复杂且资源消耗较大。两者对比:Doris更适合简单多语言场景,而Elasticsearch在语义分词和高级功能方面表现更优。选择时需根据具体需求权衡处理精度、性能和维护成本。
2025-08-04 17:06:20
432
原创 消息存储数据库选型调研
消息系统存储方案比较分析显示:MySQL+Doris组合方案最优。MySQL存储配置类数据,Doris处理亿级消息存储,二者互补性强,在查询性能(亚秒级响应)、写入性能(百万级/秒)、扩展性和事务支持等方面表现均衡。相比MySQL+ES方案(需分库分表)或纯Kafka方案(查询功能弱),该组合既能满足高并发场景,又为未来数据分析预留扩展空间,实施风险较小,是消息中心建设的理想选择。
2025-08-04 17:03:30
362
原创 IM消息数据库调研
IM系统核心是消息同步与存储,分别实现消息实时传递和云端持久化。消息同步需支持在线/离线推送及多端同步,强调实时性与规模;消息存储实现漫游功能,支持全量历史消息查询。数据库需满足Timeline模型,要求高并发写入(万级TPS)、范围读取、海量存储(TB级)及生命周期管理。对比主流数据库后,初期采用MySQL,后期考虑迁移至TiDB、Cassandra或InfluxDB。ToC系统要求更高(十万TPS/PB级),ToB可适当降低标准。排除了OLAP和搜索型数据库,重点评估时序型和分布式数据库的适用性。
2025-08-04 17:00:53
478
原创 Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
本文介绍了四种主流的Web端即时通讯技术:Ajax短轮询、Comet、WebSocket和SSE。Ajax通过异步请求实现数据交互,但无法满足实时性要求;Comet采用长连接"服务器推"技术,包括长轮询和流方式两种实现;WebSocket作为HTML5标准,提供真正全双工通信;SSE则专注于服务端向客户端的单向推送。文章分析了各项技术的原理、优缺点及适用场景,指出WebSocket和SSE代表未来方向,但当前浏览器兼容性仍是挑战。特别比较了WebSocket和SSE在实现复杂度、协议类型
2025-08-04 16:59:22
1149
原创 IM系统调研
IM系统是集网络编程、移动开发、后端技术于一体的复杂系统,具有实时性、可靠性、一致性、安全性四大特点。其应用场景已从传统社交扩展到直播、物联网、在线教育等领域。典型架构包含客户端、接入层、逻辑层、存储层和第三方服务,其中接入层负责连接管理、协议解析等核心功能。主要功能模块包括联系人列表、聊天界面、消息收发通道、消息存储和未读数管理,每个模块都需要考虑网络异常、数据同步等问题。随着互联网发展,IM技术已成为各类应用实现实时交互的基础能力。
2025-08-04 16:56:47
820
原创 elasticsearch线程池配置
最小线程数为1,最大线程数根据节点的堆内存大小和处理器数量动态调整,以优化快照操作的性能。最小线程数为1,最大线程数为5,确保管理任务能够及时响应,同时避免对系统资源造成过大压力。线程数根据处理器数量的1/8计算,确保合并操作能够并行执行,但不会占用过多资源。最小线程数为1,最大线程数根据处理器数量动态调整,确保元数据操作能够高效执行。最小线程数为1,最大线程数根据处理器数量动态调整,确保刷新操作能够及时完成。最小线程数为1,最大线程数根据处理器数量动态调整,以优化缓存预热的性能。
2025-01-16 16:33:03
1845
原创 skywalking es查询整理
这个索引用于存储所有的采样记录,包括但不限于慢SQL查询、Agent分析得到的数据等。这些记录数据包括Traces、Logs、TopN采样语句和告警信息。它们被用于性能分析和故障排查,帮助开发者和运维团队理解服务的行为和性能特点。
2024-11-22 16:37:38
1631
原创 gradle统一版本管理
这样做的好处是,当需要更新或者切换到其他版本的库时,只需要在。文件中更改对应的版本号,所有模块的依赖都会自动更新。在Gradle中,可以通过创建一个名为。1、在项目根目录下创建一个。文件中应用这个脚本。
2024-10-29 15:11:23
528
原创 JdkClientHttpConnector
Spring Framework 6.0 版本中引入的一个组件,它提供了一个自动装配的功能,允许在没有 Netty Reactor、Jetty reactive client 和 Apache HTTP client 的情况下,使用。此外,它的 HTTP 连接池不支持手动配置,默认是无限复用的,重试次数也不支持手动配置。连接到原始服务器,并在底层 API 的 HTTP 请求可以初始化并写入时应用给定的。在实际使用中,如果没有指定 HTTP 客户端或请求的版本,,并使用它来发送GET请求并获取响应。
2024-10-21 20:08:01
371
原创 Spring Boot 2.7=>3.0 升级整理
它提供了一个与平台无关的 API,可以用来度量各种应用指标,如 CPU 使用率、内存使用量、请求计数、请求延迟等,并将这些指标数据发送到多种监控系统,如 Prometheus、Graphite、Datadog、InfluxDB、Wavefront 等。Spring Boot 3.0 引入了对 GraalVM 原生镜像的官方支持,这是一项重大的改进,它允许将 Spring Boot 应用程序转换为 GraalVM 原生镜像,从而提供显著的内存和启动性能改进。在 Log4j2 初始化之后加载的所有。
2024-10-21 19:59:16
1905
原创 docker-compose安装
如果 Docker Compose 已安装,但系统找不到命令,可能是因为它不在 PATH 环境变量中。如果你在安装 Docker Compose 或修改 PATH 后没有重新打开终端,需要重新打开一个终端窗口。如果你不需要 Docker Compose 的全部功能,可以考虑使用 Docker 的原生。命令来检查 PATH 变量,并确保 Docker Compose 的安装路径被包含在内。命令,这是 Docker 20.10 及更高版本中的一个实验性特性。在某些情况下,可能存在链接问题或别名设置错误。
2024-10-17 19:41:14
1146
原创 Spring Boot 2.6=>2.7 升级整理
在 Spring Boot 2.7 及更高版本中,对 的属性源优先级进行了调整,使得通过命令行传递的属性()现在具有比通过 或 注解指定的属性更高的优先级。这意味着,如果存在同名的属性,命令行属性将覆盖通过注解指定的属性。示例:如果在运行测试时,通过命令行指定了 ,则 测试方法中的断言将通过,因为命令行属性 将覆盖 注解中指定的属性。这个变化使得测试环境更加灵活,允许开发者在不修改测试代码的情况下,通过命令行参数来覆盖测试环境中的配置属性。这对于需要根据不同环境(如不同的 CI/CD 阶段
2024-10-17 19:27:39
2499
原创 Mongodb 获取集合(collection)的统计信息
在MongoDB中,获取指定集合(collection)的统计信息可以通过执行collStats命令来实现。
2024-10-15 16:12:44
1043
原创 Mongo开启执行splitVector命令
splitVector命令是MongoDB中的一个内部命令,它用于支持分片集群中的元数据操作。这个命令并不是特定于MongoDB企业版的功能,它在MongoDB的不同版本中都有提供,包括社区版和企业版。该命令的使用在官方文档中没有详细介绍,但它是一个有效的工具,可以用来优化数据迁移和并发操作。例如,它可以在数据迁移过程中,通过并发的方式对数据进行全量迁移,提高迁移效率。命令的权限,你需要创建一个自定义角色,并将相应的权限添加到这个角色中,然后将这个角色赋予给用户。
2024-10-14 19:04:33
432
原创 JDK17~JDK21值得关注的更新整理
这是 JDK 21 中的一个关键特性,旨在通过提供轻量级的线程实现来改善 Java 应用程序的并发性能。虚拟线程是 Project Loom 的一部分,该项目的目标是将纤程(fibers)的概念引入 Java 平台,从而提高并发编程的易用性和效率。
2024-10-11 14:14:50
1940
原创 JDK11~JDK17值得关注的更新整理
这个特性增强了instanceof运算符,允许在检查一个对象的类型时直接进行模式匹配,这使得代码更加简洁和易于理解。通常我们使用instanceof时,一般发生在需要对一个变量的类型进行判断,如果符合指定的类型,则强制类型转换为一个新变量在使用instanceof的模式匹配后,上面的代码可进行简写。可以将类型转换和变量声明都在if中处理。同时,可以直接在if中使用这个变量。因为只有当instanceof的结果为true时,才会定义变量furit,所以这里可以使用&&,但是改为||就会编译报错。
2024-10-11 10:18:33
1835
原创 Gradle基础命令
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。)是一个方便的工具,它确保了所有开发者和构建服务器使用相同版本的Gradle,从而避免了版本不一致的问题。在大多数情况下,建议使用Wrapper来执行Gradle命令。请注意,Gradle Wrapper(
2024-10-10 13:56:41
425
原创 Docker基础命令
这些命令是 Docker 使用的基础,通过它们你可以开始创建、管理和部署容器化应用程序。记得在使用 Docker 时,需要有相应的权限或使用。Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。
2024-10-09 17:51:36
595
原创 UI Redressing 漏洞
UI Redressing,也被称为“点击劫持”(Clickjacking),是一种恶意攻击手段,攻击者通过在用户不知情的情况下,利用透明的或不透明的层来诱骗用户在另一个页面上点击按钮或链接,从而执行非本意的操作。: 在页面头部添加一个iframe destroyer,这是一种JavaScript代码,它会检测页面是否被嵌入到iframe中,如果是,则会从DOM中移除iframe。嵌入目标网站的页面,并精确地对齐这些页面,使得用户在点击攻击者页面上的可见元素时,实际上是在目标网站上执行了操作。
2024-10-09 14:15:28
958
原创 Thymeleaf text文本基础语法
Thymeleaf 的文本模式(Text Mode)在文本模式下,会忽略所有的 HTML 标签,只关注文本内容。
2024-10-08 15:39:59
512
原创 Thymeleaf html基础语法
Thymeleaf 是一种用于 Web 和非 Web 环境的现代服务器端 Java 模板引擎。它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。
2024-09-30 11:15:43
452
原创 Doris使用手册以及与Mysql差异整理
常用于加速分析,原理是通过索引确定不满足 WHERE 条件的数据块,跳过这些不满足条件的数据块,只读取可能满足条件的数据块并再进行一次逐行过滤,最终得到满足条件的行。上述索引中,前缀索引和 ZoneMap 索引是 Apache Doris 自动维护的内建智能索引,无需用户管理,而倒排索引、BloomFilter 索引、NGram BloomFilter 索引则需要用户自己根据场景选择,手动创建、删除。数据库索引是用于查询加速的,为了加速不同的查询场景,Apache Doris 支持了多种丰富的索引。
2024-09-30 11:08:37
4007
原创 Prompt技巧总结和示例分享
"Prompt"(提示)在人工智能中通常指的是输入给模型的文本,用于引导模型生成预期的输出。:在对话开始时,就要明确对话的目的和目标,这有助于模型集中于特定的任务或话题。:让模型根据前一轮的对话内容提供反馈或提出问题,以推动对话的深入。:在对话开始时提供必要的背景信息,以便模型了解对话的前提和环境。:为模型和你设定明确的角色,这有助于模型理解对话的背景和语境。:使用分隔符来区分不同的对话轮次,这有助于模型理解对话的结构。:如果你的问题需要最新的信息,可以提示模型进行搜索。
2024-09-29 10:09:50
2512
原创 SSE协议
Server-Sent Events(SSE)是一种允许服务器主动向客户端推送数据的技术,它基于HTTP协议,通过创建一个持久的连接来实现。这种技术非常适合用于需要服务器实时更新数据的应用场景,如股票价格更新、新闻订阅、实时通知等。
2024-09-27 10:07:23
1351
原创 API公共开放平台设计
随着业务发展未来会有更多的三方应用接入公司平台,目前为服务商定制的机制无法满足三方应用快速接入,所以需要一个更加通用的解决方案,开放平台势在必行。
2024-09-24 11:40:28
1182
原创 埋点中心升级
升级目的:现状:没有区分出基础字段和可以业务自定义字段,每个开发都有权限随意加字段,难以有效管理和控制,会导致字段蔓延,字段膨胀,大幅提升了维护难度带来很大的困扰。第三个部分就是业务定制化的私有参数,比如商情的图表点击,需要这个图表的D,或者这个图表对应跳转公司的conpanyId等参数,就是业务它自定义去使用的参数信息。1、没有区分出基础字段和可以业务自定义字段,每个业务线开发都有权限随意加字段,难以有效管理和控制,导致数据蔓延和膨胀,维护难度极大。单桶预计不到10G数据。
2024-09-24 10:50:48
1515
原创 Doris与StarRocks
Doris和StarRocks都是高性能的分析型数据库,它们都适用于大规模数据集的快速查询和分析。Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。
2024-08-15 14:39:43
4565
原创 mysql替换pgsql注意点记录
例如,如果用户A创建了一个表,那么用户A就拥有该表的所有权并具有对该表的所有权限,其他用户需要通过授权来获取对该表的访问权限。pg中的schema表示当前db中数据库对象的命名空间(namespace),数据库对象包括但不限于表、函数、视图、索引等,在使用时(如程序连接或使用sql语句时)需要显示声明使用的schema,否则默认使用指定数据库中名为public的schema。在mysql中schema表示的是database,mysql中的schema和database是一个概念。而mysql使用 `。
2024-08-15 14:32:44
284
原创 风控平台设计
背景:由于我们是做数据的公司,有很多竞争对手在我们平台注册账号然后爬数据,这种账号如果不及时处理会对系统带来极大的风险。风控平台分为管理和控制两个系统。
2023-09-18 16:42:37
862
原创 pgsql/mysql/clickhouse性能对比
目前公司使用的关系型数据库版本较老,有计划对关系型数据库进行一次升级。有两个方案,一是将现在的mysql5.7升级到8.0,二是将数据库替换成pgsql15,所以对这两个库的查询写入和资源损耗进行一次对比。
2023-09-12 14:46:35
1626
1
原创 OAuth 2.0介绍
OAuth 2.0是一种授权框架,用于授权第三方应用访问用户的资源,比如用户的照片、个人信息等。OAuth 2.0定义了四种授权方式:授权码模式、隐式授权模式、密码模式和客户端模式。OAuth 2.0具有高度的安全性和可扩展性,被广泛应用于各种开放平台的接口鉴权,是目前应用最广泛的开放平台鉴权方式之一。
2023-08-24 11:32:57
5423
原创 DevOps应用方案
以jekins为核心,实现自动化部署。开发人员推送代码到GitLab,触发事件推送到Jekins,Jekins拉取代码构建/检测,生成镜像放到镜像仓库,kubernetes拉取最新镜像执行部署。总之现有的发布机制,所带来的的沉没成本不容忽视,甚至需要专门设置岗位来执行发布,耗费人力物力且收效甚微。当达到流量阈值,会触发自动扩容机制,而当流量很少,会自动关掉多余服务,整个步骤对用户几乎无感。线上服务突然宕机,会自动记录宕机前日志,并重新启动服务。容器部署成功后,原服务才会停掉,对线上用户几乎无感。
2023-07-12 10:19:19
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅