avatar
文章
19
标签
35
分类
9

首页
归档
标签
分类
关于我
我的代码世界
搜索
首页
归档
标签
分类
关于我

我的代码世界

近期面试被要求写的三道场景题
发表于2025-10-13|随笔
最近去面试了一家公司,初试聊的很愉快,两个小时之后就通知我初始通过,效率惊人。然后再要求我写三道开放的场景题,可以开卷,作答时间为一天。看的出来,这是一家很讲究效率和看人实际工作能力的公司,毕竟在AI时代,如果再考八股文,考你背的如何,毫无意义。所以我比较向往,也蛮珍惜,于是周末花了一天的时间进行答题。 这三道题分别是: 1、设计一个分布式ID生成服务,要求: 全局唯一 趋势递增 高可用(容忍节点故障) 高性能(10万QPS以上)请给出设计方案,包含核心算法和架构图。 2、有一个订单表(1000万数据),查询缓慢,请: 分析可能的原因和执行计划解读方法 给出索引优化方案 设计分库分表方案(包含路由策略) 如何处理跨分片查询和排序? 3、设计一个支持多租户、多子系统的统一权限管理系统,要求: 如何实现细粒度的数据权限控制(如部门数据隔离) 权限变更时的实时生效方案 权限系统的性能优化策略 画出核心表结构设计并说明关系 具体的解答就不再重复写一遍了,我这里贴个图: .fkfuqwulrjab{}
一个基于SpringAI+Ollama+RAG的企业知识管理平台
发表于2025-10-08|技术教程
项目背景企业知识管理一直是个痛点:文档分散、检索效率低、知识孤岛现象严重。传统的全文检索虽然能找到关键词,但缺乏语义理解能力。 这个项目基于 RAG(检索增强生成) 架构,结合大语言模型和向量数据库,实现了: 语义级别的知识检索 基于上下文的智能问答 多轮对话的上下文理解 核心目标是让知识真正”可对话”,而不只是”可检索”,我觉得这个项目是非常有业务价值的。 应用场景企业内部知识库 技术文档检索:API 文档、架构设计、最佳实践 流程规范查询:开发规范、code review checklist 历史经验沉淀:事故复盘、项目总结 客户支持系统 产品文档问答:用户手册、FAQ、troubleshooting 技术支持辅助:快速定位问题和解决方案 自助服务平台:减少人工客服压力 个人知识库 个人知识管理:笔记、文章、书籍摘录 论文库检索 核心功能1. 文档处理与向量化支持 PDF、Word、Excel、Markdown 等格式,处理流程: 使用 Apache Tika 提取文档内容 按语义边界分片(默认 500 tokens) 通过 Embedding 模型(nomic-emb ...
让你成为Java并发大师的一个练习项目
发表于2025-10-05|技术教程
还在愁Java并发知识总是学了忘?项目中没有练手的地方? 或许只是你没有这方面的意识!来这就对了!从理论到实战,系统掌握Java并发编程核心技术,你也可以是一个并发大师!项目地址:https://github.com/penghs520/concurrency-exercises这个项目当然是Claude Code生成的啦,消耗了40$ tokens,质量很不错,欢迎你来提提PR,点点Star。另外我还制作了一个MySQL从基础到精通的教程,项目地址:https://github.com/penghs520/mysql-exercises,质量也是非常棒,五星推荐! 后面有时间我还会陆续推出更多的练习项目。 项目简介这个项目包含了8个知识点模块,覆盖Java并发核心理论和API,每个模块都提供了理论教程、Demo、2~3个练习题和答案,以及3个实战项目,提供真实业务场景的并发解决方案,并且每个场景都提供了多套解决方案。 通过理论 +练习 + 实战,效果非常好,希望你可以在一至两周内熟练掌握所有Java并发相关的知识,真正成为一个Java并发高手,而不只是学了就忘。 快速开始环境 ...
今天发现了一个看源码的神器:deepwiki
发表于2025-10-03|随笔
目录 Q1 Answer 三级缓存机制 循环依赖解决流程 配置选项 限制和注意事项 Notes Citations Q2 Answer 二级缓存的局限性 三级缓存的必要性 具体流程 为什么不能只用二级缓存 Notes Citations Q3 Answer Spring循环依赖解决时序图 关键步骤说明 Notes Citations 例如spring框架的源码,只要把前面的github改成deepwiki就可以。 deepwiki帮我们总结出了整个框架的架构概览、核心特性、核心组件,我们可以先学习核心的内容,先对整个框架有一个全局的认识,然后再逐步掌握每个核心组件,这样下来可能几天时间就可以快速掌握一个框架的核心知识。 美中不足的是,都是英文。。。 没关系,用沉浸式翻译就好。 然后就可以在这里直接对其进行代码提问了。 我们先来问一下:spring是如何解决循环依赖的? 除了解释具体的设计原理,源文件中的关键代码也给你贴出来了。   然后你可以继续提问:为什么要使用三级缓存,二级缓存不可以吗? 继续提问:你是否可以生成一个数据流图或者时 ...
Nginx常用功能详解
发表于2025-10-02|技术教程
目录 安装 服务器环境准备 安装nginx vscode远程连接服务器 nginx.conf基本介绍 部署静态网页 HTTP反向代理 正向代理和反向代理 部署后端服务 配置反向代理 配置说明 proxy_pass配置说明: 设置代理请求headers 非HTTP代理 动静分离 动静分离的好处 构建前端制品 缓存区和缓存 缓冲区(buffer) 缓存 负载均衡 负载均衡配置 负载均衡策略 1.轮循机制(round-robin) 2.最小连接(least-connected ) 3.ip-hash ‎4.hash 5.‎随机‎‎ (random) 7.健康检查 HTTPS配置 生成自签名证书 配置ssl https优化 TCP协议反向代理 重写(重定向) Return 场景1:强制所有请求都变成https 场景2:旧域名迁移,不让用户收藏的链接或者搜索引擎的链接失效 场景3:补充www 状态码说明 Rewrite last和break 压缩 其他常用指令 sendfile try_files error_page 推荐写法和注意事项 推荐写法 ...
记一次Netty PooledByteBufAllocator引发的直接内存OOM事件
发表于2025-07-09|生产事件定位处理
记一次Netty引发的直接内存OOM事件目录 问题描述 问题分析 初步分析 堆栈快照分析 怀疑Netty存在内存泄漏 Netty源码分析 回头再看 结论 问题描述近期在我们环境上遇到了一个关于直接内存OOM的问题,曾经是没有遇到过的: 根据使用人员的反馈,最近产品使用一段时间就会发生这个OOM,重启后又能好一阵子。 猜测大概的原因是近期我们的产品配置了一个多维列表视图,这个视图会发起大量的接口请求,其中一个接口返回了大量的数据以支持整个视图的渲染: 经过观察,每次访问这个视图时直接内存都会上涨,并且始终是100%,直到最大限制时出现OOM: 问题分析初步分析通过异常日志可以看到,这里正在申请4194304 bytes(也就是4MB)的直接内存,但目前已经申请了802890569 bytes(也就是765MB),而最大限制是805306368 bytes(768MB),因此发生OOM。 由于我这里启动应用程序时仅使用 -Xmx=768m指定了最大堆内存,而没有指定最大直接内存,HotSpot默认将最大堆内存作为最大直接内存限制,也就是768MB。 对 ...
分布式微服务下的数据一致性解决方案:从理论到实战
发表于2025-04-14|分布式系统
引言:为什么数据一致性这么难?在单体应用时代,保证数据一致性很简单:一个数据库,一个事务,搞定! 1234567// 单体应用的美好时光@Transactionalpublic void transferMoney(Long fromAccount, Long toAccount, BigDecimal amount) { accountDao.deduct(fromAccount, amount); // 扣款 accountDao.add(toAccount, amount); // 加款 // 要么全成功,要么全失败 - ACID保证!} 但当我们拆分成微服务后,一切都变了: 123456789101112131415// 微服务的噩梦开始了...public void createOrder(OrderRequest request) { // 调用订单服务 - 创建订单 Order order = orderService.create(request); // 调用库存服务 - 扣减库存 ...
Spring事务的钩子函数
发表于2025-03-26|技术教程
概述Spring事务钩子是一套强大的机制,这些钩子提供了对事务管理的细粒度控制,允许开发者在事务生命周期的不同阶段执行自定义逻辑。 主要的事务钩子类型1. TransactionSynchronization(事务同步器)TransactionSynchronization是最核心的事务钩子接口,提供了以下回调方法: 核心方法123456789101112131415161718192021222324public interface TransactionSynchronization { // 事务状态常量 int STATUS_COMMITTED = 0; // 已提交 int STATUS_ROLLED_BACK = 1; // 已回滚 int STATUS_UNKNOWN = 2; // 状态未知 // 事务挂起时调用 void suspend(); // 事务恢复时调用 void resume(); // 事务刷新时调用(在提交前) void flush(); ...
SpringJPA注解介绍--并使用一个交易下单流程介绍Spring本地事务
发表于2025-03-23|技术教程
Spring Data JPA 注解详解 📦 完整代码示例:https://github.com/penghs520/springboot-transaction 目录 @Modifying 注解 @Lock 注解 @Query 注解 @Transactional 注解 事务传播行为详解 @Transactional 在接口和实现类上的区别 @Entity 相关注解 @Repository 注解 实际应用示例 最佳实践 总结 @Modifying 注解作用@Modifying 注解用于标识执行修改操作(INSERT、UPDATE、DELETE)的查询方法,告诉Spring Data JPA这是一个修改操作而不是查询操作。 语法123456@Modifying( clearAutomatically = false, // 是否自动清除一级缓存 flushAutomatically = false // 是否自动刷新到数据库)@Query("UPDATE Entity e SET e.field = :value WHERE e.id = :id ...
常见加密算法详解:从对称加密到数字签名
发表于2025-02-09|信息安全
什么是加密?加密(Encryption)是将明文(Plaintext)通过加密算法转换为密文(Ciphertext)的过程,目的是保护数据的机密性、完整性和真实性。 12明文 + 密钥 → [加密算法] → 密文密文 + 密钥 → [解密算法] → 明文 加密的核心目标 机密性(Confidentiality): 只有授权用户才能访问数据 完整性(Integrity): 数据在传输过程中未被篡改 真实性(Authenticity): 验证数据来源的真实性 不可否认性(Non-repudiation): 发送方不能否认发送过该数据 加密算法分类加密算法主要分为三大类: 12345678910111213141516171819202122加密算法├── 对称加密(Symmetric Encryption)│ ├── DES│ ├── 3DES│ ├── AES (推荐)│ ├── SM4 (国密)│ └── ChaCha20│├── 非对称加密(Asymmetric Encryption)│ ├── RSA│ ├── ECC (椭圆曲线加密)│ ├─ ...
12
avatar
Peng::Debug
每一行代码都经过精心雕琢,每一个Bug都是成长的印记
文章
19
标签
35
分类
9
Follow Me
公告
🌟 小彭啊,不是我说你,你怎么又停更了?
最新文章
近期面试被要求写的三道场景题2025-10-13
一个基于SpringAI+Ollama+RAG的企业知识管理平台2025-10-08
让你成为Java并发大师的一个练习项目2025-10-05
今天发现了一个看源码的神器:deepwiki2025-10-03
Nginx常用功能详解2025-10-02
分类
  • 信息安全1
  • 分布式系统1
  • 技术教程6
  • 数据库2
  • 数据结构1
  • 生产事件定位处理1
  • 设计模式1
  • 软件架构2
标签
博客搭建 数据一致性 JVM 微服务 数据库 面试场景题 AI 数据结构 内存泄漏 Java 数据库监控 RabbitMQ 架构设计 分布式事务 Kafka Spring RAG Nginx 生产事件 分布式系统 博客部署 并发编程 性能优化 JPA Netty RocketMQ 加密算法 事务 领域驱动设计 消息队列 OOM 设计模式 DDD 源码 MySQL
归档
  • 十月 20255
  • 七月 20251
  • 四月 20251
  • 三月 20252
  • 二月 20251
  • 一月 20253
  • 八月 20241
  • 三月 20242
©2020 - 2025 By Peng::Debug
框架 Hexo|主题 Butterfly
搜索
数据库加载中