RocksDB 是一种高性能键值存储引擎: 数据写入流程 先写日志(WAL):像记账本一样先记录操作日志,防止停电丢数据 再写内存(MemTable):用高效的跳表结构暂存最新数据 写日志是顺序写入,比直接写磁盘快10倍以上 数据存储结构 SST文件:内存满了就把数据"冷冻"成不可修改的排序文件 分7层存储:越下层数据越多(L0最小,L6最大) 90%数据最终沉到
TiKV 是 TiDB 的"数据仓库",专门负责存储和高效管理数据。它的核心设计可以用几个简单的比喻来说明: 数据存储方式: 像个超大保险箱,所有数据都以键值对(key-value)的形式存放[5] 内部使用 RocksDB(一个超高性能的本地存储引擎)来存数据,相当于保险箱里的精密储物格 数据分片机制: 把整个数据库切成很多小块叫 Region(类似把图书馆的书
TiDB 是一个开源的分布式关系型数据库,它的设计非常巧妙,把数据库分成几个核心组件,各司其职又互相配合。我用大白话给你讲讲这些组件的原理和功能: TiDB Server(相当于"前台接待") 负责和应用程序打交道,接受你的SQL查询 它会解析SQL语句,制定最优的执行计划 但自己并不存储数据,是个"无状态"的服务 可以随时增加多个TiDB节点来分摊压
敏捷方法核心解析 三大核心思想 适应型而非预测型 强调响应变化而非遵循既定计划[3] 案例:像应对城市交通拥堵,实时调整路线而非死守原导航方案 以人为本非过程为本 核心区别:传统方法关注文档流程,敏捷关注人员协作[1] 真题印证:"敏捷开发以人为本,非过程"是正确描述[1] 迭代增量式开发 将大项目拆分为2-4周的小周期交付[3] 类比:像拼乐高,每次完
生产环境批处理层优化实践 我们在批处理层进行了多项工程优化: Kafka集群采用3副本机制,按业务域划分Topic,刷卡流水使用Protobuf格式压缩存储 使用Spark Structured Streaming监听Kafka触发HDFS写入,替代传统的Cron调度方式,确保数据零丢失 开发Spark ETL Pipeline时引入Checkpoint机制,失败任务自动续跑 针对HBase
MySQL 与 PostgreSQL 选型指南 生活化例子 快餐vs定制餐: MySQL 像是快餐连锁店 - 快速、标准化、上手简单 PostgreSQL 像是高级餐厅 - 提供更多定制选择,但需要更多知识和时间 家用轿车vs赛车: MySQL 像家用轿车 - 省油、易于驾驶、适合日常使用 PostgreSQL 像赛车 - 性能强大、可调校性强、需要专业知识 智能手机vs单反相
? TiDB 和 MySQL 选型对比(大白话版) 1️⃣ 基础定位 MySQL:像个“老牌单反相机”,简单易上手,适合小到中型应用,比如个人博客、电商后台、企业内部系统。 TiDB:像个“分布式高清录像机”,专为大数据、高并发设计,适合需要无限扩展的业务,比如超大型电商、金融交易、物联网数据。 2️⃣ 核心区别对比 对比项 MySQL TiDB 存储能力 上限取决于单机硬盘
以下是关于OLTP与OLAP的区别的详细解释,包含生活化类比和记忆技巧: ========== 生活化例子 ========== OLTP(银行ATM机) 你每次取钱/转账:短平快的操作(每次只处理你的1笔交易) 柜台处理1000人取钱:1000个独立小任务 要求:快速响应,绝不能算错钱 OLAP(年度财务报告) 统计全行所有用户年度消费习惯 分析「90后」的跨行转账时间段分布 要求
你好,我是悟空,今天我们来看下仓库体系结构风格。 仓库体系结构风格包含三种:数据库系统;超文本系统;黑板系统。 仓库(Repository)是存储和维护数据的中心场所。在仓库风格中,有两种不同的构件: 中央数据结构(仓库),说明当前数据的状态。独立构件,它对中央数据进行操作。 数据库系统:构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立 处理单元,处理单元对数据元素
你好,我是悟空。 随着互联网+模式的不断发展,涉及到的电商平台领域也呈现出数据量的爆炸式增长,从最开始的每天 GB 级数据,到现在 TB 甚至 PB 级数据,这都是很常见的。我所在的公司成功中标一个游乐场电商平台项目,线下 50 多家门店,每天的刷币记录都是非常庞大的,这就带来了三个很大的问题:(1)对于对海量的离线数据如何进行分析处理;(2)如何对增量数据进行实时处理;(3)如何将离线数据和增量
你好,我是悟空。 上一篇介绍了 5 大软件架构风格,接下了我们看下游乐场电商平台项目中选择了哪几种架构风格。 该游乐场电商平台是一个比较复杂的系统,要求高并发、高可用,高性能。经过全面考量,需采用多种架构风格来完成该项目的架构设计。该项目采用了基于 SpringCloud 的微服务架构,用户端采用 C/S 架构,管理端采用 B/S 架构。在架构风格选择上,我们最终选择了层次架构风格、事件系统体系结
你好,我是悟空。 今天我们来看下常见的 5 种架构风格: (一)数据流风格 1、批处理体系结构风格:每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以整体的方式传递。 2、管道-过滤器体系结构风格:把系统分解为多个处理步骤(过滤器),每个处理步骤都有一组输入和输出,管道负责处理步骤间的数据传输。缺点是交互性差、性能差。 (二)调用/返回风格 1、主程序/子程序
你好,我是悟空。 最近项目组正在做云 WAF 防控,所以来看看什么是云 WAF。 下面用通俗易懂的方式对比传统 WAF(Web应用防火墙) 和 云WAF 的区别: ? 生活化例子 1. 传统WAF(硬件/软件WAF) 就像在自己家里安装防盗门窗和监控摄像头 优点:完全自主控制,适合敏感数据(比如银行金库) 缺点:安装维护成本高,防护范围仅限自己家 2. 云WAF 就像租用小区24小时保安+
思考题 思考题 1、应该将动态获取到的 prompt_list 利用起来,通过用户输入和 prompt_list 进行匹配,然后传给 client.use_prompt() 方法。我写了一个扩展的 client 和 扩展的 server,且增加了一种提示词用于重构代码。 另外修复了当角色为 system 报错的问题。详见 PR:https://github.com/huangjia2019/mcp
你好,我是悟空,我在学习 MCP 协议时,遇到的两个思考题,在这里记录下。 上述 4 种 MCP 的传输实现方式,具体业务场景中应该如何选型? 思路:本地 / 调试:如果只是同机启动或者做调试,用 stdio 最简单;浏览器或 HTTP 服务:前端无法直接用 stdin/stdout,可用 SSE+POST,它在所有浏览器里原生支持;可靠生产:若要在 HTTP/1.1 上做断连重连、流复用、可恢复
这个文件 src/mcp/shared/session.py 主要实现了一个基于异步流的“会话”机制,常用于客户端与服务端之间的高效异步通信。它大量使用了 Python 的类型注解、泛型、异步编程(async/await)和上下文管理器。下面是主要内容的分解和解释: 1. 主要依赖和类型定义 anyio:异步并发库,提供流、任务组、取消作用域等。 httpx:HTTP 客户端库,用于处理 HT
1.1、MCP 协议是如何通过资源模板实现访问动态资源 1.1.1、MCP 底层是如何注册资源模板的:文件:src/mcp/server/fastmcp/server.py。通过 @server.resource("resource://{param}") 装饰器注册资源模板,底层会调用 ResourceManager.add_template,并最终创建 ResourceT
遇到的问题和经验总结:详见 MR : https://github.com/huangjia2019/mcp-in-action/pull/1 1、示例中的 openai 不是一般人能用的,首先得学术上网,然后还得申请一个 openai 的 api key,还需要充值。 2、.env 文件需要自己创建一个,Google 的那个 api key 不需要。如果你访问不了 openai,就用阿里云百炼。
下载地址https://www.kingbase.com.cn/download.html该版本新增了对SQLServer若干系统视图和内置函数的支持,支持ICU库并对其进行了优化;支持更多的高级查询功能,包括FOR XML子句、PIVOT行列转换操作、GROUP BY子句中基于不同数据类型进行分组、DINSTICT子句与ORDER BY联合中列别名的使用等;新增DML操作触发更新统计信息功能,提
macOS(Intel & Apple Silicon) 上从零到上线的一条龙配置流程,全部基于 Homebrew,可直接复制执行。 安装 / 更新 Homebrew(如果已装可跳过) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&
git clone 报错:HTTP/2 stream 1 was not closed git clone xxx Cloning into 'xxx'... fatal: unable to access 'https://github.com/zkep/my-geektime.git/': HTTP/2 stream 1 was not closed cleanly before end of
你好,我是悟空。 前言 TiDB 已经支持 MCP 功能了,一直想看看怎么玩的,本篇是一篇实践篇,带着大家一起搭建 TiDB MCP Server,以及如何添加 TiDB MCP,如何使用 TiDB 的 MCP。 演示环境说明 可以连接使用的的 TiDB 数据库,且连接时不需要证书、隧道等。 Mac M1,32G 内存。 CodeBuddy 工具,用来配置 MCP 服务和生成式对话,也可以用其他
一、初识 TiDB 我和 TiDB 的结识来自 modb 社区的小编的邀约,给我发了一篇 TiDB 的第四届征文的活动,于是我开始了解 TiDB。我在 modb 社区发布了 88 篇原创文章,所以小编也是鼓励我参加 TiDB 的活动。 在 TiDB 上注册了一个账号,当时也不知道写些什么好,毕竟对 TiDB 了解的不多,后来在论坛上偶然间看到了一个 关于 TiDB 的 Tem On 腾讯云试用活
你好,我是悟空。 背景 在学习 TiDB 的过程中,发现了一个新大陆,TiDB 官方支持免费创建在线的 TiDB 数据库,省去了本地部署 TiDB 的麻烦。 今天就带着大家一起看看如何创建一个 TiDB 的在线环境 TiDB Cloud,以及如何用在线的数据库连接工具,尤其是 AI 功能。 TiDB Cloud 简介 TiDB Cloud 是由 PingCAP 公司提供的全托管云数据库服务(DB
TiDB + AiOps 实践路径 采集数据 全面、高质量地采集 TiDB 集群的全链路数据。 Metrics:使用 Prometheus 无缝采集 TiDB 丰富的内部监控指标。 Logs:收集 TiDB 各组件的日志,并接入 ELK 或 Loki 等日志平台。 Traces:通过开启分布式链路追踪(如 OpenTelemetry),追踪 SQL 请求的全生命周期。 如下图所示: 平台建设
AiOps 的宗旨 将传统的值班方式改为二十四小时不间断的异常监控和异常处理。 将个人的运维经验转变成集体智慧。 传统的运维方式往往是处理故障,属于故障发生之后再去止血补救,而智能运维很大程度上赋能了主动运维这个概念,在故障出现前通过一些前兆特征加以规避,或者使故障范围最小化。 AiOps 能给 TiDB 带来什么? AiOps 通过融合大数据与机器学习算法,将运维数据(Metri
通过不断地对 TiDB 的学习,我了解到了 TiDB 作为一款先进的分布式数据库,核心优势在与弹性扩缩容、高可用性、强一致性和实时的 HTAP 能力。但是,这些优势也引入了心的复杂度。 组件繁多 一个 TiDB 集群就包含了 TiDB-Server、TiKV、PD、TiFlash 等多个组件,监控的指标维度多,数量大。如下图所示,这个是 TiDB 的体系架构。 动态性强,容易误报 扩缩容、数据调度
之前我在学习 CodeBuddy AI 编程工具时,就自己搭了一个 MCP Server 用来部署网站,通过对话方式实现自动化部署,算是一个 AiOps 的缩影。 我在工作中不断思考,如何利用 AiOps 的思想来节省运维的成本,提高工作的效率,为公司带来更大的价值,通过在学习 TiDB 的过程中,我们是否可以将 TiDB 和 AiOps 结合在一起了,本篇我们来探讨下。 2016 年,Gartn
你好,我是悟空。前言TiDB 已经支持 MCP 功能了,一直想看看怎么玩的,本篇是一篇实践篇,带着大家一起搭建 TiDB MCP Server,以及如何添加 TiDB MCP,如何使用 TiDB 的 MCP。TiDB 的 AI SDK——PyTiDB,现已原生支持 MCP 协议。这意味着开发者可以直接使用 PyTiDB 提供的 MCP Server 模块,将 TiDB 数据库接入支持 MCP 的
MCP 介绍 2024 年 11 月,Anthropic 公司搞了个挺有意思的新玩意 - Model Context Protocol(模型上下文协议)简称为 MCP 协议。简单来说,它就是给 AI 和各类工具数据之间搭了个标准化的”桥梁”,让开发者不用再为对接问题头疼了。 大模型应用可以使用别人分享的 MCP 服务来完成各种各样的工作内容,你可以从这些地方获取 MCP 服务: awesome-
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号