Introduction
悟已往ZALA,哈尔滨工业大学(深圳),广东深圳。 看今朝编程 Java:熟练掌握Java核心技术,包括集合框架、多线程、IO 流等,了解设计模式和 JVM 基础知识 C++:扎实的面向对象编程基础,熟悉STL容器和算法,了解内存管理和多线程编程 后端 熟悉常见的后端开发框架、数据库设计与优化、常用中间件,熟练掌握 Git、Maven、IDEA等主流开发工具 AI 熟悉 AI 应用开发的核心技术要点,如 RAG 知识库构建与检索、Agent 架构设计、提示词工程、MCP等 知来者心不畏死,踏尸前行
Internship Monthly Report
来到杭州某厂实习刚好一个月了,记录下感想 做了什么工作上,每天都有记录日报,总结下来:迁移四个服务、完成两个需求、启动转正项目; 社交上,和后端同事都熟络起来,有问题能及时沟通、反馈,指导我很多工程经验,大家都超级nice 收获什么收获最大的是更全面的后端工程开发经验,在这里产品、前端能够随时沟通,便于明确需求;前辈随时指导,避免走弯路 期待什么期待自己能够顺利完成自己的转正项目、接住需求,过程中不断锻炼自己基础工程能力、AI应用能力,尽快成长为合格的后端工程师
LeetCode 哈希系列
题目 类型 难度 状态 掌握程度 题目链接 视频链接 日期 242. 有效的字母异位词 哈希 简单 通过 思路错误 题目链接 视频链接 2026-01-10 349. 两个数组的交集 哈希 简单 通过 需要Debug 题目链接 视频链接 2026-01-10 1. 两数之和 哈希 简单 通过 完全掌握 题目链接 视频链接 2026-01-15 15. 三数之和 哈希 中等 通过 思路错误 题目链接 视频链接 ...
第一节 RAG 简介
一、什么是RAG?1.1 核心定义从本质上讲,RAG(Retrieval-Augmented Generation)是一种旨在解决大语言模型(LLM)“知其然不知其所以然”问题的技术范式。它的核心是将模型训练过程学到的“参数化知识”(模型权重中固化的、模糊的“记忆”),与来自外部知识库的“非参数化知识”(精准、可随时更新的外部数据)相结合。其运作逻辑就是在 LLM 正式推理前,先通过检索机制从外部知识库中检索相关信息,并将这些“参考资料”融入推理过程,从而提升输出的准确性和时效性。 1.2 技术原理RAG 系统是如何实现“参数化知识”与“非参数化知识”的结合呢?其架构主要通过两个阶段来完成这一过程: 检索阶段:寻找“非参数化知识” 知识向量化:嵌入模型(Embedding Model) 充当了“转换器”的角色。它将外部知识库编码为高维向量索引(Index),存入向量数据库。 语义召回:当用户发起查询时,检索模块利用同样的嵌入模型将问题向量化,并通过相似度搜索(Similarity Search),从海量数据中精准锁定与问题最相关的文档片段。 生成阶段:融合两种知识 上下文整...
RustFS 介绍
引言MinIO 官方正式宣布项目进入维护模式,转向维护企业付费的 MinIO AIStor(起价约$96,000/年,针对 400TB) 替代产品: RustFS、Garage RustFS 介绍官网:RustFSGitHub:rustfs 由国人团队主导的开源项目,目前 GitHub Star 数已狂飙至18k+,根据 GitHub 的数据,RustFS 是增长最快的分布式对象存储。 特点RustFS 是一个基于 Rust 语言开发的高性能分布式对象存储软件,定位与 MinIO 高度相似,功能基本对齐 MinIO 开源版(包括分片上传、桶策略、版本控制、事件通知、生命周期管理等),完全兼容 AWS S3 协议,部署简单(Docker 一键启动),并提供现代化的可视化管理控制台。 与其他存储产品的对比同等硬件条件下,压测性能约为 MinIO 两倍 CPU:2 核,Intel Xeon (Sapphire Rapids) Platinum 8475B,2.7/3.2 GHz 内存:4GB 网络:15Gbps 硬盘:40GB x 4,IOPS 3800 ...
2.架构设计
实现思路首先针对架构设计,介绍比较常用的几个思路 主动轮询这是实现定时器最简单粗暴的方式:轮询 + 触发,主要流程有: 注册定时器:按显式的任务执行时间,制定一系列定时任务 节点自轮询:每间隔一个微小的时间范围,对定时任务列表进行全量查询 过滤&触发:以执行时间小于等于当前时刻作为过滤条件,摘出满足执行条件的定时任务进行执行 但这样的定时器需要承担 O(N) 的查询时间复杂度 存储结构优化有序表基于有序表提升查询效率 即利用存储结构,将时间复杂度均摊到每一笔操作中。例如使用红黑树或跳表,通过牺牲插入时间复杂度,降低查询时间复杂度 此处选用 Redis ZSet,以定时任务执行时间为 Score 进行有序结构的搭建,实现流程如下: 以 Redis ZSet 作为存储介质(即所有元素始终按照 Score 排序好) 每次添加定时任务时,执行 ZAdd 动作,以执行时间的时间戳作为排序的键(Score)进行有序结构的搭建 每次查询定时任务时,执行 ZRangeByScore 动作,以当前时刻的时间戳加上一个微小偏移量(1s)作为 Score 的左右边界(因为要选择的是...
1.准备
价值在学习该项目前,应该对其价值有一个清晰的认识,明确学习该项目能够带来哪些提升。 优点 立意:在社区项目中经常会用到定时任务,比如定时进行数据同步、定时处理合并消息请求等,定时微服务可以很好地解决这些问题。因此除了直接调用类似 XXL-JOB 等定时模块,手动实现一个更加轻量化、可扩展的定时任务处理机制就更具有实际意义,有助于深入理解微服务架构设计。 属性:定时场景是一个通用且业务关联性弱的场景,适合做成微服务独立部署,或作为中台服务去维护。 核心:定时服务并不复杂,场景便于理解,但是重点在于定时的精度、任务的吞吐量等问题,能够锻炼对分布式系统的理解。 技术栈:在针对核心问题上,核心组件就是 MySQL、Redis、消息队列(作为异步回调能力)等,技术栈相对简单,便于快速上手。 价值重点在于架构能力的提高,定时微服务决定采用模块化设计、分治策略等设计理念,能够有效在核心问题上提供较好的解决方案。 背景与现状了解项目价值后,需要继续对项目在实际业务中出现的场景进行分析,明确项目的背景与现状。 场景 某类办公软件,每天早上9点通知员工打卡 订单下单15分钟后,若未支付则自...
0.介绍
为什么?现在技术领域有较成熟的项目管理系统,如:禅道、TAPD,但其更多关注点在于需求迭代和缺陷本身,对项目资源管控以及流程引擎关注较少。因此可以考虑设计一款智能的项目管理系统,核心在于对项目资源录入、任务智能流转分配等方面,目标是建立完整的 CRM 系统,结合 LLM ,该项目将有无限可能。 怎么学?重点在技术架构、组件库开发、业务梳理上,针对产品设计也应该有所了解。 学什么?因为定时场景在真实业务中较为常见,所以首先选择定时微服务进行学习。
基础思维代码
介绍本文会持续介绍一些考察非算法的手撕代码,包括但不限于基础思维代码、数据结构代码、算法代码等。 死锁死锁一直是常在学习计算机编程相关知识时需要特别注意的问题,下面是一个简单的死锁示例代码: 1234567891011121314151617181920212223242526272829303132333435363738public class DeadLockDemo { // 定义两把锁对象 private static final Object LOCK_A = new Object(); private static final Object LOCK_B = new Object(); public static void main(String[] args) { // 线程1:先获取LOCK_A,再尝试获取LOCK_B new Thread(() -> { synchronized (LOCK_A) { Syste...

