- 博客(69)
- 资源 (2)
- 收藏
- 关注
原创 系统设计练习 - Real-Time Analytics Platform
<think>我们根据内容生成摘要,不超过150字。需要提炼系统设计要点:实时分析平台,接收事件,Kafka+Flink+OpenSearch,支持聚合查询,容错与扩展。摘要要简洁。</think>该平台采用API网关批量接收事件,经事件服务校验后写入S3日志(数据源),并转发至Kafka;Flink流处理计算聚合指标,结果存入OpenSearch供查询,支持毫秒级响应。通过幂等写入和日志回放实现精确一次语义,利用watermark处理乱序,分区策略缓解热点,数据保留30天。
2026-09-07 06:12:32
191
原创 系统设计练习 - Design a Distributed Cache
<think>我们根据要求生成≤150字的文章摘要。内容需涵盖系统核心设计、关键需求、架构、非功能指标。需简洁。</think>摘要:设计分布式缓存系统,供后端服务共享,支持GET/SET/DELETE和TTL,采用一致性哈希分片,多节点集群和副本提升可用性。通过客户端库处理缓存未命中回源DB,LRU淘汰与惰性TTL清理,应对热点与高并发。目标支持日百亿请求、P99<5ms、可用性>99.99%。
2026-09-05 08:22:32
241
原创 系统设计练习 - Distributed Rate Limit
<think>我们根据要求生成摘要,≤150字。需要概括系统设计要点:全球分布式限流服务,支持动态规则,算法token bucket,Redis集群+哈希定位+Lua原子性,配置agent同步,orchestrator按region分配quota,容错策略。摘要需简洁。</think>设计了一个全球分布式限流服务,支持多维度动态规则配置,秒级生效。采用令牌桶算法应对突发流量,通过配置代理本地缓存规则。使用Redis集群按用户哈希分片保证同一用户数据本地性,Lua脚本确保原子性。区域间
2026-09-05 02:38:17
180
原创 系统设计练习 - 分布式通知系统(Distributed Notification System)
<think>我们只需要根据用户要求生成≤150字的文章摘要。内容是关于设计DistributedNotificationService的摘要。需要简洁概括系统设计要点。字数限制严格。</think>设计了一个分布式通知服务,支持Push、Email、SMS等渠道,提供通知创建、调度、用户偏好管理及查询API。核心包括日志回放保证至少一次送达、数据库三表设计、按秒调度、通过SQS与分布式限流器集成外部Provider,并用DLQ处理失败重试。系统支持多区域部署,实现高可用、低延迟与优
2026-09-03 15:05:18
191
原创 系统设计练习 - Design a News Feed
<think>我们根据要求生成≤150字的文章摘要。需要总结系统描述、需求、架构、设计要点。注意字数。内容需简洁。</think>设计个人化Newsfeed系统,支持发布帖子、关注/取关、获取排序Feed,每日3亿DAU。采用Fanout-on-write为主、名人Fanout-on-read,使用DynamoDB存储并启用Stream异步扇出,API分页优化。利用向量与历史偏好提升Feed质量和个性化,保证P99低延迟与高可用。
2026-09-03 06:02:21
240
原创 系统设计练习 - URL Shortener
内容关于URL缩短服务的系统设计。需要概括功能、架构、非功能需求等。摘要要简洁。该系统设计URL缩短服务,支持创建短链接、重定向、过期及自定义别名。架构采用API网关与独立创建/重定向服务,使用DDB存储、Redis缓存及CDC同步。通过Base62随机编码防猜测,整体最终一致,多区域部署应对高并发。
2026-08-31 14:26:39
175
原创 系统设计练习 - 分布式黑名单服务(design a distributed denylist service)
本文描述了一个分布式黑名单服务的设计方案。该系统通过检查请求中的标识符(如用户ID、IP地址等)来决定是否允许访问。核心组件包括:1) 无状态的deny-check-service,使用Redis缓存和DynamoDB进行快速查询;2) denylist-service处理黑名单的增删改查;3) 通过CDC机制保持缓存与数据库同步。针对高吞吐量需求,提出了使用布隆过滤器优化查询性能的方案,并讨论了可能出现的误判问题及其解决方案。系统提供RESTful API接口,支持黑名单查询、修改和请求检查功能,具备高可
2026-08-11 14:54:31
204
原创 系统设计练习 - Global Job Scheduling Platform
本文设计了一个支持亿级定时任务的分布式调度系统,核心需求包括任务CRUD、至少一次执行、重试机制和历史查询,要求支撑1亿任务量(峰值200万/分钟)并保证99.99%可用性。架构采用分层设计:通过API网关接收请求,调度服务管理元数据并利用DynamoDB构建两级时间索引(分钟级分区+秒级排序)。调度工作者通过分片租约获取任务,计算下次触发时间并投递到执行队列,执行工作者异步处理并记录结果。针对热点时段(如零点峰值),提出两种优化方案:非严格时效任务通过限流平滑处理,严格时效任务则通过动态分片(如添加分钟后
2026-07-13 14:24:28
171
原创 AI Agent实战总结 - 维护测试数据
本文介绍了一个利用本地AI模型维护测试数据的解决方案。通过在Mac系统搭建Ollama环境并运行qianwen3:14b开源模型,结合Python的Jupyter Notebook和LangChain框架,实现了技术人员和非技术人员都能方便维护时间序列测试数据的系统。系统核心包括:1)使用pandas、matplotlib等工具处理JSON格式的层级化测试数据;2)定义search_in_file和extract_pressure_values等基础方法;3)开发visualize_pressures工具实
2026-07-07 12:45:55
236
原创 系统设计练习 - 全球特征标签配置平台
本文介绍了一个全球统一Feature Flag平台的设计方案。系统需要支持数千个后端服务和移动应用的灰度发布控制,具备高可用、多地域部署和低延迟等特性。核心架构采用配置服务管理功能开关,通过全局数据库同步到各区域的分布式服务,再由SDK本地缓存提高性能。关键设计包括:1) 基于一致性哈希的渐进式发布;2) 支持多条件的精准投放;3) 5秒内生效的全局熔断;4) 读写分离的缓存策略优化性能。系统通过版本控制实现审计和回滚,利用数据流实现跨区域同步,在保证用户体验一致性的同时满足高并发需求。
2026-07-02 16:19:51
207
原创 每日一道经典算法题 - 二进制幂运算
本文介绍经典算法题及其高效解法,重点讲解二分幂算法(O(logn)时间复杂度)及其应用。核心思路是将指数分解为二进制形式,通过迭代计算降低复杂度。代码示例展示了快速幂的实现,并扩展该思想到矩阵运算,如斐波那契数列(矩阵快速幂)和图论中的路径计数问题。这些方法利用结合律特性,将线性复杂度优化为对数级,适用于各类满足结合律的运算场景。
2026-06-30 04:27:31
188
原创 每日一道经典算法题 - Fenwick Tree
本文介绍了经典算法题中的Binary Indexed Tree(BIT,又称Fenwick树)数据结构及其应用。BIT用于高效处理数组区间查询(如求和)和单点更新操作,时间复杂度均为O(logN)。文章详细解释了BIT的工作原理,包括g(i)和h(j)函数的定义,并提供了C++实现代码。此外还展示了BIT在二维数组上的扩展应用,使区间求和与更新的时间复杂度降为O(log²N)。通过学习这些经典算法,可以帮助应对技术面试中的相关问题。
2026-06-27 06:31:27
153
原创 系统设计练习 - AWS CloudWatch Logs
本文设计了一个面向百万级AWS应用的日志服务系统,支持日志写入、查询和保留策略管理。系统采用微服务架构,通过API Gateway分发请求,使用Kinesis、Flink和S3实现高效数据摄取与存储,并通过OpenSearch建立索引支持快速查询。针对高吞吐量场景,采用分片扩展和本地缓存机制;对于服务崩溃情况,设计客户端本地存储作为容灾方案。系统满足每天10PB数据处理、99.99%可用性以及秒级查询延迟等严苛需求。
2026-06-26 14:27:11
280
原创 系统设计练习 - 设计分布式事件流处理系统
本文设计了一个高并发事件流处理平台,支持数百万客户端实时写入和多服务并发消费。系统采用基于日志的分区存储架构,通过partition保证顺序写入,支持consumer group并行消费和offset管理。关键设计包括:1)使用append-only日志结构提高顺序读写效率;2)引入副本机制保障高可用;3)提供at-least-once投递语义;4)支持动态分区扩容。平台具备低延迟、高吞吐、水平扩展等特性,适用于点击流、视频观看等实时事件处理场景。API设计包含事件发送和消费接口,系统架构分离了写入和消费模
2026-06-22 08:34:48
254
原创 每日一道经典算法题 - 最大/最小子数组搜索问题
这篇文章介绍了解决经典最大子数组和问题的两种算法,并扩展到了二维矩阵情况。一维解法1通过维护最小前缀和来高效求解,时间复杂度O(n);解法2通过动态丢弃负贡献的前缀子数组来优化。二维情况先计算行方向的前缀和,再利用一维解法逐列处理,将时间复杂度从O(n^4)优化到O(n^3)。两种解法都提供了Python实现代码,并指出最小子数组问题可通过元素取反转化为最大子数组问题。文章强调了掌握这类经典算法对面试的重要性。
2026-06-20 04:34:00
221
原创 系统设计练习 - Instagram Reels分级和分发系统
本文介绍了video feed推荐系统的基本设计框架和数据流程。介绍了大型推荐系统领域常遇到的设计概念和技巧。并且对于相关的系统设计进行的设计经验总结。
2026-06-01 04:52:23
187
原创 系统设计练习 - 高并发多租户核心账本与授权引擎(core ledger & authorization engine)
本文介绍了如何支持高并发和多租户的对账系统与授权引擎。基于alive-alive模式,同时利用memory storage和lock free的设计理念,处理分布式环境中对强一致性和低延迟的要求。另外,引入FLINK技术建立core ledger DB以实现整体系统数据的一致性和可恢复性。同时本文探讨了在特殊情况下比如网络连接中断,怎样保持系统的可用性。
2026-05-26 04:53:39
409
原创 系统设计练习 - 全球跨境电商“闪购与动态降价”系统
摘要:本文介绍了一个全球化电商平台营销活动系统的架构设计。系统采用中心-边缘架构,将全球划分为多个region,用户就近接入实现低延迟。核心挑战包括:1)全球化库存防超卖,采用2PC协议协调region间库存分配;2)实时价格更新,使用version控制确保一致性;3)高可用设计,支持region断网时的降级运行。系统通过预分配库存、逻辑时钟和离线同步等机制,在保证强一致性的关键业务(库存)和最终一致性的非关键业务(价格)之间取得平衡,满足高并发、低延迟和全球化部署的需求。
2026-05-19 00:31:42
345
原创 系统设计练习 - 全球统一的实时风控决策平台
本文提出一个毫秒级实时风控决策系统设计方案,支持支付、信贷等多业务线。系统采用规则引擎+AI模型的混合决策模式,具备特征计算能力(如5分钟交易次数统计)。核心需求包括:P99延迟<50ms、99.99%可用性、百万QPS、全球多region部署。架构包含API网关、决策引擎、特征服务、模型服务等组件,通过在线特征存储(DDB+Redis)和离线数据湖实现高效数据处理。关键设计包括:1)多region部署与数据同步;2)风险缓存机制;3)大用户预计算;4)通过namespace实现多租户隔离。技术选型推
2026-05-17 08:04:00
411
原创 系统设计练习 - 全球实时协同文档平台
本文提出一个支持多人实时协作的文档系统设计方案。系统支持富文本、表格、嵌入组件和设计元素,具备离线编辑、评论、权限管理和API集成等功能。架构分为客户端、协调器和存储三层:客户端维护本地操作日志;协调器执行操作转换并通过Redis发布订阅;存储层定期合并操作生成快照。系统采用操作转换(OT)算法解决冲突,通过分片策略应对性能瓶颈,并以操作数据库作为唯一数据源确保一致性。权限管理采用文档级和块级ACL,评论采用懒加载策略。该设计满足高并发、低延迟和高可用性需求,支持10亿级文档规模。
2026-05-11 06:43:24
351
原创 系统设计练习 - 实时警员安全报警系统
本文对实时警员安全报警系统进行的系统设计。其中用到了gateway,redis,geoHash,FLINK, kafka stream等工具和技术。讨论了API设计,系统架构设计,并深入讨论了系统设计中的一些关键问题和可以进行的深度扩展。
2026-05-09 14:15:31
425
原创 系统设计练习 - 实时街头抓拍系统
本文提出一个实时车辆识别系统的设计方案,满足从摄像头接收视频流、AI识别车辆信息、历史记录查询和实时告警等功能需求。系统采用微服务架构,包含视频上传、AI分析、索引构建、查询服务和告警服务等组件,使用AWS云服务(S3、Lambda、SageMaker等)实现。设计重点解决了数据一致性(通过幂等API和消息队列)、系统扩展性(合理设计DynamoDB分区键和OpenSearch索引)和低延迟(考虑边缘计算和流处理优化)等非功能性需求。系统端到端延迟控制在2-5秒内,通过异步处理和缓存机制保证高性能查询。
2026-05-08 06:24:41
373
原创 怎样通过Ollama免费养殖的小龙虾(OpenClaw)
本文介绍了开源AI项目Ollama和OpenClaw的安装与使用流程。Ollama支持在本地运行开源大语言模型,而OpenClaw则是一个能通过Agent和Tools与外界交互的AI代理系统。文章详细说明了如何安装这两个工具,配置OpenClaw连接本地Ollama服务,并通过浏览器界面与AI互动。最后展示了两个应用实例:查询天气和生成图片,展示了OpenClaw的交互能力。整个过程完全基于开源模型,无需付费即可体验AI的强大功能。
2026-04-25 08:59:39
396
原创 搭建免费的Ollama AI Agent
本文介绍了如何利用Ollama和LangChain构建基础AIAgent。首先概述了AIAgent的核心组成(Policy+Memory+Tools+ExecutionLoop)及相关工具,重点说明了选择本地运行Ollama的两大优势:节省API调用费用和操作便捷性。通过具体代码示例,演示了安装qwen3.5模型、创建Python虚拟环境、定义天气查询和地点描述工具函数,以及构建能自主选择调用工具的AIAgent全过程。测试结果显示Agent能智能识别用户意图,如将"sf"解析为&quo
2026-04-13 23:42:06
488
1
原创 每日一道经典算法题 - MEX(minimal excluded) 问题
本文介绍了经典算法题——寻找数组中最小的缺失非负整数(MEX)。基础解法使用哈希集合存储数组元素,然后遍历0到N查找第一个缺失数,时间复杂度O(N)。针对数组频繁更新的场景,提出了优化方案:用集合维护缺失数,哈希表记录出现频率,更新时同步调整集合,保证查询效率为O(1)。文章提供了C++实现代码,包括基础版和动态更新版两种解法,帮助读者应对算法面试中的经典问题及其变种。
2026-04-09 11:27:16
70
原创 我怎样在30秒处理8百万个OpenSearch文档
本文探讨了处理大规模时序数据的优化方案。针对OpenSearch查询800万文档耗时过长的问题,提出将10小时查询缩短为30秒窗口,大幅减少初始查询量。同时将scale-up方案改为scale-out,通过SQS队列分发任务,利用多个ECS/Fargate实例并行处理。相比Lambda方案,该设计能更好控制并发性,避免冷启动问题。对于超大数据量情况,建议采用滑动窗口策略,将中间结果存储在DynamoDB等键值数据库,通过增量更新降低计算负载。整体方案通过查询优化和分布式处理,将原需40分钟的任务缩短到30秒
2026-04-03 02:57:42
388
原创 如果你对AI agent还没有概念,可以先试试这个
本文介绍如何在VSCode中快速搭建一个简单的AI代理(CodeGuardian),用于自动为Python文件添加版权声明。通过创建agent.md和技能定义文件(check_copyright.md、insert_header.md),用户可以定义代理的行为逻辑:当保存.py文件时检查是否存在版权声明,若缺失则自动插入预设的header。整个过程只需基础Python知识和VSCode操作,无需深入理解AI原理,适合初学者通过实践直观感受AI代理的工作方式
2026-03-22 16:55:00
260
原创 设计练习 - Movie Review Aggregator System
本文是一篇对于系统设计的练习文章。我们设计了一个系统以对电影的评价进行处理。我们采用了aws里的一系列服务完成了系统设计。最后我们对比原文分析了本次系统设计可以改进的地方。
2025-05-17 09:25:12
889
原创 系统设计练习 - 设计“奈飞”
本文概述了设计一个类似于奈飞的流媒体平台的系统架构。系统功能需求包括支持用户的订阅服务、视频信息的展示与播放、用户观看历史的记录与续播功能,并区分付费用户(无广告)与免费用户(含广告)。非功能需求强调了系统的高可靠性、高扩展性、支持大规模用户同时在线及低时延处理请求的能力。系统高层设计采用了AWS云服务组件,如APIGateway、Lambda、Cognito、DynamoDB和S3,来实现用户认证、视频服务、视频播放、数据存储等功能。
2025-05-12 09:02:27
782
原创 分布式系统里的事件顺序
本文介绍了在分布式系统中事件顺序的相关定义和概念,以及两种最简单的逻辑时钟:lamport和vector。同时,本文通过一个例子说明了在分布式系统中事件顺序的重要性和用法。
2025-04-10 09:13:07
1126
原创 系统设计练习 - dropbox
本文是系统设计的练习。我们在本文中设计了一个类似dropbox的系统。设计了其基本的功能。最后讨论了一些扩展问题。
2025-03-28 14:53:13
828
原创 如何在大量数据集中快速查找某条记录是否存在的思考
本文中我们简单介绍了用于处理查询某条记录在否存在的prefix tree算法和bloom filter算法。并且我们比较和分析了两种算法的优点与局限性,并得到应该如何选择的结论。
2025-02-16 08:23:43
969
原创 分布式事务处理的2PC模式和SAGA模式的介绍与思考
本文介绍了分布式事务,以及解决分布式事务的两种设计模式:2PC和Saga。最后我们对2PC和Saga进行了比较,并且介绍了作者自己对于两种模式的一些思考。
2024-11-29 05:57:47
1120
原创 实战项目:通过自我学习让AI学习五子棋 - 1 - 项目定义
本文是一个实战项目的第一篇文章。该实战项目尝试构造一个应用,该应用可以通过自我对弈训练AI学会五子棋的下法。在本文中我们介绍了该项目的想法,定义了项目需求,我们打算尝试的算法。
2024-11-09 08:36:44
1035
原创 分布式系统及其优点
分布式系统(distributed system)是现在广泛使用的系统设计和实现技术。在前面所写的一些文章中,我们讨论了一些在分布式系统中可能会遇到的某些问题,以及我们所考虑的解决方案。在本文中,我们将介绍什么是分布式系统以及分布式系统的优点和挑战。
2024-03-25 10:36:17
934
原创 使用Python进行股票分析(2)
我们在之前的文章《使用Python进行股票分析(1)》中,通过自动获取股票的历史数据,然后选择在一定时间内处于上涨的股票作为我们投资的标的。在本文中,我们进一步通过分析股票的短期趋势,选择处于短期上涨趋势的股票,进一步筛选我们的理想投资标的。
2024-03-25 07:50:07
1017
原创 使用Python进行股票分析(1)
Python具有非常好的数据分析和数据可视化的功能。在本文中,我们将通过使用Python获取股票的闭市价格,并且对股票价格进行分析和可视化,并且定义了一种简单的股票交易策略向我们提供买卖股票的依据。
2024-03-08 11:51:32
1324
原创 在分布式环境中使用状态机支持数据的一致性
在本文中,我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子,介绍了一种通过设计状态机来避免使用transaction的方法。
2024-03-08 02:53:17
1664
原创 关于在分布式环境中RVN和使用场景的介绍4
在本文中,我们介绍了在分布式环境中基于RVN可以解决的一类新的问题,也就是防止多个请求同时修改一条记录而互相覆盖的问题,并且探讨了基于该问题的扩展情况。
2024-02-22 07:24:46
1261
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅