【系统设计】数据结构选型:内存与磁盘

问题背景描述要解决的问题:如何在不同的硬件限制(内存 vs 磁盘)和业务需求(多读 vs 多写 vs 范围查询)下,最快地找到数据? 可以把这个问题拆解为两个维度来理解: 存储介质维度: 内存(RAM): 访问极快,但空间有限。重点在于算法的CPU...

【系统设计】IO多路复用 select poll epoll

基本概念与发展过程我们要解决的核心任务是:一台服务器(电脑),如何同时接待成千上万个客户端(用户连接)。(即,高并发问题) 按照您的要求,我先列出3个必须知道的基础概念,然后再按时间线讲故事。 第一部分:基础概念小词典(先看懂这3个词) 用户空间 v...

【消息队列】Pulsar基本使用

Grafana 主要用于 监控指标(Metrics)。它能告诉你 Pulsar 集群的吞吐量(QPS)、存储占用、JVM 状态、消息积压数量(Backlog)等,但它无法让你查看具体的 Topic 列表(以管理视角)或查看消息的具体内容(Paylo...

【MongoDB】常用命令速查

MongoDB Cheat Sheet1. 核心概念对比 MongoDB 概念 关系型数据库 (SQL) 对应 描述 Database (数据库) Database 集合的容器。 Collection (集合) Table (表) 数据...

【系统设计】崩溃一致性

什么是崩溃一致性?设计背景在涉及状态持久化的系统中(如数据库、元数据服务、资产系统、任务状态系统等),写操作不可避免地面临以下风险: 进程异常退出 主机宕机或掉电 磁盘写入中断 写入顺序被打乱 如果缺乏专门设计,系统可能在崩溃后处于一种历史上从未...

【消息队列】基本概念与设计理念

消息队列1. 消息队列是什么?如何选型? 定义的广义化: 消息队列本质上是具有 “缓冲作用” 和 “发布/订阅能力” 的存储引擎。 技术的发展由 需求 和 底层架构 双重驱动: 需求面(功能演进):消息 (异步/解耦) –>...

【Kubernetes】资源配置相关知识

0. 调优思路:何时调内存,何时调 CPU?在实际生产中,调整资源的侧重点通常取决于业务类型: 调大内存: 适用于数据密集型场景。例如:缓存服务(Redis)、大数据处理、内存计算、高并发下的状态存储。内存不足会导致 OOMKilled(进程被强制...

【MongoDB】索引优化

一、卡慢来源1.分析:卡慢感受来源与原因1.1 卡慢感受来源 用户使用前端页面卡慢 Web接口响应慢。 前端渲染逻辑不合理(数据量大时阻塞)。 外部调用 ASM 服务卡慢 对外 API 接口响应慢。 1.2 卡慢原因深度分析(1)Mongo...

【通用工具】Makefile:自动化编译说明书

这是什么?Makefile 是一个自动化编译工具的“说明书”。 在开发大型软件项目时,通常会有成百上千个源代码文件。如果你每次改动一点代码都要手动输入命令去编译每一个文件,不仅低效,还容易出错。Makefile 的出现就是为了解决这个问题。 1. M...

【go基础】协程管理

从一个错误案例开始起因是在工作中看到一段代码,感觉是程序遇到异常而卡住的原因,起了两个协程,其中一个等待另一个完成后开始,二者通过channel进行消息传递。后一个协程在完成时使用了goto语句。程序最后为select{}永久卡死,等待前面启动的两个...

1234