【系统设计】数据结构选型:内存与磁盘
问题背景描述要解决的问题:如何在不同的硬件限制(内存 vs 磁盘)和业务需求(多读 vs 多写 vs 范围查询)下,最快地找到数据? 可以把这个问题拆解为两个维度来理解: 存储介质维度: 内存(RAM): 访问极快,但空间有限。重点在于算法的CPU...
问题背景描述要解决的问题:如何在不同的硬件限制(内存 vs 磁盘)和业务需求(多读 vs 多写 vs 范围查询)下,最快地找到数据? 可以把这个问题拆解为两个维度来理解: 存储介质维度: 内存(RAM): 访问极快,但空间有限。重点在于算法的CPU...
基本概念与发展过程我们要解决的核心任务是:一台服务器(电脑),如何同时接待成千上万个客户端(用户连接)。(即,高并发问题) 按照您的要求,我先列出3个必须知道的基础概念,然后再按时间线讲故事。 第一部分:基础概念小词典(先看懂这3个词) 用户空间 v...
Grafana 主要用于 监控指标(Metrics)。它能告诉你 Pulsar 集群的吞吐量(QPS)、存储占用、JVM 状态、消息积压数量(Backlog)等,但它无法让你查看具体的 Topic 列表(以管理视角)或查看消息的具体内容(Paylo...
MongoDB Cheat Sheet1. 核心概念对比 MongoDB 概念 关系型数据库 (SQL) 对应 描述 Database (数据库) Database 集合的容器。 Collection (集合) Table (表) 数据...
什么是崩溃一致性?设计背景在涉及状态持久化的系统中(如数据库、元数据服务、资产系统、任务状态系统等),写操作不可避免地面临以下风险: 进程异常退出 主机宕机或掉电 磁盘写入中断 写入顺序被打乱 如果缺乏专门设计,系统可能在崩溃后处于一种历史上从未...
消息队列1. 消息队列是什么?如何选型? 定义的广义化: 消息队列本质上是具有 “缓冲作用” 和 “发布/订阅能力” 的存储引擎。 技术的发展由 需求 和 底层架构 双重驱动: 需求面(功能演进):消息 (异步/解耦) –>...
0. 调优思路:何时调内存,何时调 CPU?在实际生产中,调整资源的侧重点通常取决于业务类型: 调大内存: 适用于数据密集型场景。例如:缓存服务(Redis)、大数据处理、内存计算、高并发下的状态存储。内存不足会导致 OOMKilled(进程被强制...
一、卡慢来源1.分析:卡慢感受来源与原因1.1 卡慢感受来源 用户使用前端页面卡慢 Web接口响应慢。 前端渲染逻辑不合理(数据量大时阻塞)。 外部调用 ASM 服务卡慢 对外 API 接口响应慢。 1.2 卡慢原因深度分析(1)Mongo...
这是什么?Makefile 是一个自动化编译工具的“说明书”。 在开发大型软件项目时,通常会有成百上千个源代码文件。如果你每次改动一点代码都要手动输入命令去编译每一个文件,不仅低效,还容易出错。Makefile 的出现就是为了解决这个问题。 1. M...
从一个错误案例开始起因是在工作中看到一段代码,感觉是程序遇到异常而卡住的原因,起了两个协程,其中一个等待另一个完成后开始,二者通过channel进行消息传递。后一个协程在完成时使用了goto语句。程序最后为select{}永久卡死,等待前面启动的两个...