自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(848)
  • 问答 (2)
  • 收藏
  • 关注

原创 rust基础之环境搭建

Rust是由 Mozilla 主导开发的高性能编译型编程语言,遵循"安全、并发、实用"的设计原则,首次发布于 2010 年。Rust支持多种编程范式,包括函数式、并发式、过程式和面向对象风格。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

2026-07-16 11:56:15 266

原创 Kafka集群之抛弃 Zookeeper

以前查一个 topic 创建失败,可能要看:AdminClient 日志,Broker 日志,Controller 日志,Zookeeper 日志,网络连接,ZK session。那时候要解决的核心问题是高吞吐日志流,不想把一致性、选举、元数据管理都塞进自己身体里,拆出去,活能跑起来。这不是 send 写错了,也不是序列化错了,是集群控制面在抖。通知慢一点,线上看到的现象就不是“创建 topic 慢”,而是一堆看起来没那么直接的异常。这种东西,别为了架构洁癖动它,能稳跑的老集群,不是今天看到。

2026-06-11 18:17:08 599

原创 SpringCloud之负载均衡 Ribbon和LoadBalancer讲解

Ribbon是Netflix开源的客户端负载均衡组件,是Spring官方推出的替代方案。替换的根本原因是Ribbon已进入维护模式(Maintenance Mode),不再积极更新。客户端负载均衡和服务端负载均衡有什么区别?客户端负载均衡():由调用方自己选择服务实例,不需要中间代理。服务端负载均衡(Nginx / F5):由代理服务器选择后端实例,前者性能更好(少一跳),后者与语言无关。

2026-06-11 17:11:43 423

原创 AI基础之RAG讲解

RAG,检索增强生成)核心思路就一句话:让大模型在回答问题之前,先去外部知识库里检索相关资料,然后基于这些资料来生成回答。打个比方,大模型就像一个学生参加开卷考试——与其死记硬背所有知识(预训练),不如带着参考书进场,需要的时候翻一翻。RAG就是给大模型配的这本 “参考书”。

2026-06-06 16:48:43 429

原创 Spring中用到的设计模式

Spring设计模式Spring 中的典型应用一句话说明工厂模式把对象的创建过程封装起来单例模式Bean的默认作用域整个容器中只有一个实例代理模式AOP(JDK 动态代理 / CGLIB)不改源码就能增强功能模板方法模式固定骨架,可变步骤留给子类观察者模式事件机制一处发布,多处监听适配器模式让不兼容的接口能协同工作策略模式Resource接口、同一接口,不同实现策略责任链模式Filter链、链请求沿着链条依次处理装饰器模式动态增强对象功能。

2026-06-02 16:48:41 440

原创 FastUtil高性能集合

FastUtil是由意大利计算机科学家 Sebastiano Vigna 维护的开源库,它为Java原始类型()提供了类型特化的集合实现,性能通常比 JDK 集合快 2~5 倍,内存占用降低40%~70%。在高性能后端、游戏服务器、大数据处理、量化交易等场景中,几乎是标配。

2026-04-26 21:18:19 550

原创 MySQL优化之系统表分析SQL

写个 shell 脚本把这 10 条 SQL 串起来,每天凌晨跑一遍,结果发到告警群线上出性能问题时,先跑一遍这个脚本,用输出数据倒推是哪个环节出了问题的统计是累计值,排查之前先,这样就能只看最近这段时间的数据,不被历史污染如果没有权限,或者不想冒险直接操作,可以使用MySQL官方提供的sys Schema存储过程,这是更安全、便捷的做法:-- 会截断 performance_schema 下所有的 summary 和 history 表。

2026-04-20 15:34:26 437

原创 Redis 8 新特性

所有模块的功能,全部内置到核心包中。不需要模块,不需要对齐版本,不需要担心兼容性。如果还在用Redis 6还是Redis 7,升级到Redis 8,不是选择题,是必答题。从Redis 7.4、Redis Stack 7.2/7.4,直接升级到Redis 8。,不是简单的版本迭代,是一次底层重构,是一次性能飞跃,更是一次对未来的重新定义。,吞吐量翻倍,复制速度加快18%,查询处理能力提升16倍。每个模块都要单独装,版本还要对齐,升级还要操心兼容性。的性能提升,不是吹出来的,是测出来的。

2026-04-20 14:15:09 740

原创 AI使用之节省token方法

让AI自己总结记忆,这个方案的想法很巧妙:不保留原始对话,而是定期让大模型把旧对话“压缩”成一段摘要,只保留关键信息。// 历史摘要// 未压缩的新消息// 触发压缩的token阈值// 大模型客户端// 估算当前token数,超过阈值则触发压缩compress();// 构建待压缩的内容:旧摘要 + 新消息请将以下对话历史压缩成一段简洁的摘要,保留:1. 用户的关键信息(姓名、偏好、身份、已做出的决定)2. 重要的任务状态和上下文3. 任何后续对话可能需要的事实。

2026-04-20 12:01:38 813

原创 高并发之双写一致性

在使用定时任务的方案中,需要在业务代码中增加额外逻辑,如果删除缓存失败,需要将数据写入重试表,而使用mq的方案中,如果删除缓存失败了,需要在业务代码中发送mq消息到mq服务器。其实先写数据库,再删缓存的方案,跟缓存双删的方案一样,有一个共同的风险点,即:如果缓存删除失败了,也会导致缓存和数据库的数据不一致。在接口中如果更新了数据库成功了,但更新缓存失败了,可以立刻重试3次。,即在写数据库之前删除一次,写完数据库后,再删除一次,该方案有个非常关键的地方是:第二次删除缓存,并非立马就删,而是要在一定的。

2026-04-20 10:26:04 429

原创 PostgreSQL基础之安装

修改完密码记得把数据目录data下的。设置密码,账号默认为postgres。数据库服务监听端口号,默认端口号即可。系统语言/地区, 建议选择默认。数据库相关数据默认存放在这里。启动 PostgreSQL。

2026-03-13 11:49:56 2559

原创 SpringBoot整合MongoDB讲解

时必须把 每个节点 IP/域名、端口、副本集名字、authSource 全写在 URI 里,加 +srv 后,可以不用写详细uri了。mongo 是springboot 整合的,直接使用springboot中集成的版本了。,但是没有使用,则需要排序mongo的配置不然没有配置uri,项目启动有问题。记录,自动拿到副本集所有节点地址 + 鉴权数据库、参数,再真正连接。对象,并没有有类的概念。方法,可以返回对象所属的类。字段,用来存储Java类的全限定名。对象来实现这一目标。需要知道每个文档所属的Java类。

2026-01-13 11:16:29 1424

原创 Ollama讲解与使用

Ollama是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计,支持多种操作系统,包括 macOS、Windows、Linux 以及通过Docker容器运行。Ollama的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和API,使得从文本生成、对话系统到语义分析等任务都能快速实现。与其他 NLP 框架不同,Ollama旨在简化用户的工作流程,Ollama。

2025-12-27 19:46:37 1460

原创 Spring WebFlux与SpringMVC 对比讲解

从早期的Struts到统治多年的Spring MVC,见证了整个 Java Web 开发框架的演进。所以今天深入聊聊 Spring 5 带来的这个“新成员”——WebFlux。有些小伙伴在工作中可能听说过它,知道它性能高异步非阻塞,但真要上手,心里却直打鼓:这和Spring MVC到底有啥不同?项目真的需要它吗?

2025-12-27 17:42:40 1360

原创 网络传输架构之gRPC讲解

有些小伙伴在工作中构建微服务架构时,可能会遇到服务间通信性能瓶颈。gRPC正是为了解决高性能分布式系统通信而设计的。双向流:支持客户端流、服务器流和双向流流量控制:基于HTTP/2的流控制多路复用:单个连接上并行多个请求头部压缩:减少传输开销优点:高性能,二进制编码支持双向流式通信强类型接口定义多语言支持内置认证、负载均衡等缺点:浏览器支持有限(需要gRPC-Web)可读性差,需要工具调试学习曲线较陡生态系统相对较小。

2025-11-24 17:43:14 1378

原创 网络传输架构之GraphQL讲解

有些小伙伴在工作中可能遇到过这样的场景:移动端只需要用户的姓名和邮箱,但REST API返回了用户的所有信息,造成数据传输浪费。GraphQL正是为了解决这个问题而生的。Schema定义:强类型系统描述API能力查询语言:客户端精确请求需要的数据执行引擎:解析查询并返回结果GraphQL的优缺点分析优点:精确的数据获取,避免过度获取单一端点,减少HTTP连接开销强类型系统,自动生成文档前端主导数据需求缺点:查询复杂度控制困难缓存实现复杂(HTTP缓存失效)

2025-11-24 17:39:58 1225

原创 MyBatis Flex 讲解使用

是一个在MyBatis基础上深度增强的框架,专为解决Java开发中数据库操作的复杂性而设计。它不仅保留了MyBatis原生的灵活性,可以自由编写SQL语句,同时又引入了一系列强大的特性,大大简化了开发流程。MyBatis-Flex 官网与其他ORM框架相比,具有显著的优势。它非常轻量,除了MyBatis之外,没有任何第三方依赖,这不仅减少了项目的依赖复杂度,还提高了系统的稳定性和自主性。在性能方面,表现卓越,其独特的架构设计,在SQL执行过程中没有任何SQL。

2025-11-22 18:57:58 967

原创 Maven插件核心原理讲解

确切的说,我们日常提及的Maven实际上只是Maven插件集合的核心框架。创建jar文件创建war文件编译代码单元测试代码创建项目文档等等。几乎所有能想到的在项目中执行的操作都是通过Maven插件实现的。而我们安装的maven仅仅是为插件的运行提供一个管理框架我们在打开一个maven管理的工程时,通常能在其POM文件中看到这样的内容。

2025-11-19 14:54:31 808

原创 Go日志之日志库讲解

,可以用于记录简单的日志信息,如时间、级别、消息等。但是,如果需要更多的功能和灵活性,例如结构化日志、日志旋转、日志钩子、日志格式化等,那么可能需要使用第三方的日志库。是一种高性能、简洁、并发友好的编程语言,广泛用于开发各种应用程序,如网络服务、微服务、云计算、区块链等。是一个结构化、分级、可扩展和兼容标准库log包的日志库,由Sirupsen开发和维护。只支持结构化的日志记录,但是具有更高的性能和更低的内存分配。语言中最流行和最优秀的日志库,并给出每个库的使用示例代码。

2025-11-15 10:27:17 1133

原创 ThreadLocal与ScopedValue对比讲解

*** Web应用ScopedValue定义*/// 用户上下文// 请求信息// 数据库连接(可选)// 追踪ID/*** 用户上下文详细信息*///省去get 全参/*** 请求信息*///省去get 全参。

2025-11-06 11:20:30 851

原创 RocketMQ之原生方式操作

可以提供对 RocketMQ 的完全控制,可以精确配置各种参数(如 sendMsgTimeout、retryTimesWhenSendFailed 等),还可以直接访问所有 RocketMQ 特性。:是指客户端处理网络回调(包括消息拉取结果、心跳响应、offset 更新、发送确认等)时的线程池大小。客户端网络 I/O 层(Netty 客户端) 的回调处理线程数,主要负责执行客户端与。Push 模式特点 和 Pull方式(手动拉取)比较。核心类:DefaultMQPullConsumer。

2025-10-24 09:20:43 957

原创 FFmpeg和ZLMediaKit 实现本地视频推流

是一套强大的开源音视频处理工具,能够对本地视频进行解码、转码和推流。 则是一个轻量级、高效的流媒体服务器,负责接收并分发视频流。两者结合时,通常由将处理后的视频流,以或等协议推送至服务器,再由实现多终端、多协议的实时直播分发。 音视频编码、转换、处理的瑞士军刀,是一套可以记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案主要网址:特点:核心工具:主要包含三个强大的命令行工具::运营级流媒体服务器与服务框架,基于的高性能运营级流媒体服务框架主要网址:

2025-10-01 20:04:41 2899

原创 Win环境下包管理工具

Scoop和winget两个Windows下常见的包管理器Scoop:类Unix风格、以用户目录安装、无需管理员权限、适合把程序装在自定义位置,版本要求:Windows 7 或更高版本;winget:微软官方的Windows包管理器,集成Microsoft存储库和社区清单,适合统一安装/升级系统级软件(有时需要管理员权限),但不保证能把所有程序装到自定义盘(安装路径由各包的安装器决定)或更高版本 / Windows 11作为微软官方工具,winget的目标是成为Windows上统一的软件包管理标准。

2025-10-01 14:57:53 2834

原创 数据库之Doris DB详细讲解

在大数据时代,企业亟需能够同时应对海量数据和实时分析挑战的引擎。(原 Palo) 应运而生,它是一个现代化、高性能的 (大规模并行处理) 核心目标是为用户提供对超大规模数据集的毫秒级交互式查询体验。简单来说,它主要用于的快速分析和报表查询,而不是处理日常的事务(比如银行转账、电商下单等)。它最初由百度开发,后来贡献给了 Apache 基金会,现在是一个顶级的开源项目,全称是 Apache Doris主要应用场景:相较于同类产品(如 ClickHouse、StarRocks、Hadoop生态组件),Dor

2025-08-25 11:05:20 2201

原创 AI框架之LangChain4j讲解

是LangChainPython) 的 Java 移植版,遵循其原设计理念,灵活、模块化、非侵入式,是通用性很强的工具包。虽然是的 Java 实现,但并非简单移植,而是融合了 LangChain、Haystack、LlamaIndex 等框架的理念,专为 Java 开发者优化。以LLM为中心,注重模块化和灵活性,提供了统一的 API 来适配多种 LLM 和向量存储,适合需要高度定制化的场景。更灵活,模块化设计让开发者可以自由组合功能,适合构建复杂、定制化的 AI 工作流。

2025-08-20 10:18:06 3136 1

原创 SpringBoot打包运行原理和加载机制原理

java -jar启动过程中,会首先Paths类找到对应的启动jar的位置信息。读取文件里面的Main-class,启动使用类加载器,完成对当前类依赖的加载,如果当前类不存在,则去super(打破了双亲委派)。类加载器通过使用解决嵌套 JAR 的加载问题加载主类,并且执行main方法。这种设计使得Spring Boot应用可以像普通可执行文件一样运行,简化了部署和分发过程。

2025-06-14 20:36:35 1415 1

原创 Spring Integration之消息传递讲解

是Spring框架的一个重要扩展,其核心目标在于极大地简化企业集成模式的开发过程。它构建了一种基于消息的编程模型,让分布式系统中的系统集成变得更加轻松便捷。消息:在的体系中,消息是信息传递的关键载体。它就像一个装满各种信息的“包裹”,不仅可以包含业务数据,还能携带头部信息、消息标签等内容。消息会沿着特定的通道(Channel)在系统中有序传递。通道(Channel):通道就像是消息在系统中流动的“高速公路”。提供了多种不同类型的通道,直接通道(),它就像一条直达专线,能让消息快速高效地传递;

2025-05-06 14:50:57 1503

原创 MySQL数据同步之Canal讲解

Canal是阿里巴巴开源的一个用于高效抓取MySQL数据库增量变更日志(binlog)并进行处理的中间件。它可以将MySQL的binlog解析为结构化的JSON格式,并提供多种方式将这些数据推送到下游系统。

2025-05-01 09:37:25 2631 1

原创 日志之ClickHouse部署及替换ELK中的Elasticsearch

ClickHouse 官方 RPM 包通常针对 x86_64 架构编译,并依赖 SSE 4.2 指令集,检查当前CPU是否支持SSE 4.2,如果不支持,需要通过源代码编译构建。FileBeat 配置文件说明,坑点 1(需设置 keys_under_root: true)。复制 default.bi_inner_log_local 的列定义(列名、类型等),但不复制数据。修改监听地址(允许远程访问): 默认只监听本地(127.0.0.1)。的 DDL 语法,用于在集群的所有节点上同步执行 DDL 语句。

2025-05-01 09:36:05 1543

转载 动态脚本引擎之QLExpress讲解

是阿里巴巴开源的一门动态脚本引擎解析工具,是一个轻量级、高性能的 Java 规则引擎 和 动态脚本执行框架,起源于阿里巴巴的电商业务,旨在解决业务规则、表达式、数学计算等动态脚本的解析问题。它类似于Groovy或JavaScript引擎,但更专注于规则解析和执行效率线程安全QLExpress被设计为线程安全的动态脚本引擎,它使用类型的临时变量,确保在引擎运算过程中的并发场景下的线程安全性。高效执行: 为了提高执行效率,QLExpress在编译过程中可以将比较耗时的脚本编译结果缓存到本地机器。

2025-04-11 09:51:14 1744

原创 Model Context Protocol (MCP) 协议讲解

是OpenAI提出的一个用于多模型系统之间共享上下文和状态的协议,主要目标是在不同的AI 模型之间建立统一的上下文语言,以便它们能够更好地协同工作。简单来说,MCP是用来让多个模型在同一个脑子里工作的协议,它建立了共享上下文的通用格式。MCP 就像一个统一的翻译官,让AI只需学一种"语言"就能和所有服务交流。这样开发者不用为每个服务单独开发连接方式,AI也能更容易获取它需要的信息。gRPC通过标准化的通信方式可以实现不同语言开发的服务之间进行通信,那么MCP专门为AI模型设计的翻译官和接口管理器。

2025-04-08 10:35:48 1944

转载 使用 Ollama 本地化部署 deepseek

Ollama是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。​Ollama本地运行:​支持在本地环境中部署和运行大型语言模型,确保数据隐私和安全。​简化部署:​通过简单的安装和配置,即可快速启动模型,降低了技术门槛。​多模型支持:​兼容多种预训练模型,满足不同的应用需求。​硬件友好:​支持纯 CPU 推理,适用于各种硬件环境。​。

2025-03-26 13:42:38 414

转载 SpringBoot 3 替换 spring.factories

从开始,引入了基于imports文件的新机制,作为的替代方案。这些文件位于文件名对应的spring.factories中的键对于自定义的扩展点,需要提供类似的imports// 自定义扩展点加载器示例// 迁移到新机制// 或者实现自己的imports文件加载逻辑// ...// 1. 创建配置属性类// getter和setter方法// ...// 2. 创建自动配置类。

2025-03-26 11:13:19 1155

原创 Java多线程之StampedLock讲解

锁允许多个线程同时读取共享变量,但是在读取共享变量的时候,不允许另外的线程对共享变量进行写操作,更多的适合于读多写少的环境中。那么,在读多写少的环境中,有没有一种比更快的锁呢?答案当然是有!那就是——JDK1.8中新增的与相比,在读的过程中也允许后面的一个线程获取写锁对共享变量进行写操作,为了避免读取的数据不一致,使用读取共享变量时,需要对共享变量进行是否有写入的检验操作,并且这种读是一种乐观读。总之,是一种在读取共享变量的过程中,允许后面的一个线程获取写锁对共享变量进行写操作,使用乐观读。

2025-03-18 11:14:30 1202 2

原创 SpringCloud之Gateway灰度发布讲解

灰度发布, 也叫金丝雀发布。是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。

2025-03-11 11:50:22 1701

原创 Redis两级缓存之Caffeine讲解使用

在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如或Caffeine,从而再次提升程序的响应速度与服务性能。于是,就产生了使用本地缓存作为一级缓存,再加上远程缓存作为二级缓存的两级缓存架构。

2025-03-01 10:35:42 1343

原创 SpringBoot 整合 Apache Tika提取数据

它支持多种文件格式,包括文档、电子表格、PDF、音频、视频、图片等,具有强大的文件内容解析能力。用于 敏感信息识别 和 数据泄露防护,我们可以在文件上传时提取文件内容,并在提取的文本中搜索潜在的敏感数据,如身份证号、信用卡信息、电话号码等。敏感信息的检测通常涉及正则表达式(Regex),你可以使用常见的模式来检测个人信息(如身份证号、信用卡号、电话号码等)。的架构组件主要包括以下几个核心部分,它们共同协作,以支持从各种文件格式中提取文本、元数据和其他信息。

2025-02-13 15:12:11 1845

原创 MySQL中大量数据优化方案

表分区可以在区间内查询对应的数据,降低查询范围并且索引分区也可以进一步提高命中率,提升查询效率分区是指将一个表的数据按照条件分布到不同的文件上面,未分区前都是存放在一个文件上面的,但是它还是指向的同一张表,只是把数据分散到了不同文件而已。分表后,显而易见,单表数据量降低,树的高度变低,查询经历的磁盘io变少,则可以提高效率分库分表。

2025-01-17 21:35:47 3101

原创 JavaFX基础之环境配置,架构,FXML

JavaFX中文官方网站JavaFX是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。DBeaver、finalshell、Behinder(冰蝎)、BurpSuite、Jmeter、IDEA等等这类比较知名软件,那么java是否有更好的桌面应用开发的框架呢?准备环境:IDEA,JDK17,Windows,Scene BuilderFXML是一种可编写的、基于XML的用于构造JavaFX。

2025-01-08 17:50:20 2022

转载 JavaFX基础之组件讲解

以下是父节点坐标系的示例,其中子节点位于父节点坐标系中的(25,25)处。子节点也有它自己的坐标系,它有它的 (0,0),其中子节点位于父坐标系中-意思是在父节点坐标系中的(25,25)。这意味着,作为另一个节点的子节点的节点都有自己的坐标系,以及在其父节点坐标系中的位置 (X,Y)。在JavaFX中,窗口Stage可以插入一个场景Scene,它表示在窗口内显示的内容。随着Y值的增加,该点从坐标系的顶部向下移动。类是所有控件的父类,下面通过其控件子类示例演示Node节点的UI控件的通用属性。

2025-01-08 17:49:42 635

空空如也

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

TA关注的人

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