本周系统设计复习:
- 即将出版书籍招募评审员
- 什么是 MCP?
- 如何设计 Instagram 系统
- 如何闪电般加载你的网站
新书评审员招募
我们很高兴地宣布三本新书即将出版:
- Behavioral Interview
- Object-Oriented Design Interview
- Mobile System Design Interview
这些书的初稿已完成,我们正在寻找评审员帮助使它们更好。
如果你有兴趣担任评审员,我们很乐意收到你的来信!请发送电子邮件到 hi@bytebytego.com,附上简短介绍,指定你想评审哪本书,并附上你的 LinkedIn 个人资料链接。
注意,这是一个志愿者职位(无报酬)。作为我们感谢的象征,如果你帮助评审过程,我们将把你的名字列入书的致谢中。
什么是 MCP?
为什么每个人都在谈论它?让我们仔细看看。
Model Context Protocol(MCP)是 Anthropic 引入的一个新系统,使 AI 模型更强大。
它是一个开放标准(也作为开源项目运行),允许 AI 模型(如 Claude)连接到数据库、API、文件系统和其他工具,而无需为每个新集成编写自定义代码。
MCP 遵循客户端 - 服务器模型,有 3 个关键组件
Host(主机) AI 应用如 Claude,为 AI 交互提供环境,以便可以访问不同的工具和数据源。主机运行 MCP Client。
MCP Client(MCP 客户端) MCP 客户端是 AI 模型(如 Claude)内部的组件,允许它与 MCP 服务器通信。例如,如果 AI 模型想要来自 PostgreSQL 的数据,MCP 客户端将请求格式化为结构化消息发送到 MCP Server。
MCP Server(MCP 服务器) 这是连接 AI 模型到外部系统(如 PostgreSQL、Google Drive 或 API)的中间人。例如,如果 Claude 分析来自 PostgreSQL 的销售数据,PostgreSQL 的 MCP 服务器充当 Claude 和数据库之间的连接器。
MCP 有五个核心构建块(也称为原语)
它们在客户端和服务器之间分配:
对于客户端:
- Roots:安全文件访问
- Sampling:请求 AI 帮助完成任务,如生成数据库查询
对于服务器:
- Prompts:指导 AI 的指令
- Resources:AI 可以引用的数据对象
- Tools:AI 可以调用的函数,如运行数据库查询
如何设计 Instagram 系统
以下是构建核心功能的简单分步方法:
用户执行操作 用户在设备上执行操作,如点击喜欢按钮、上传图片或关注另一个用户。
请求通过网关 请求通过网关到使用 Django、Express 或其他任何框架构建的后端服务器。
数据存储 数据存储在数据库中。结构化数据(如用户资料、评论和关系)存储在关系数据库(如 Postgres)中。
高吞吐数据 需要高写入吞吐的数据项(如用户 feed 和活动日志)可以存储在最终一致数据库(如 Cassandra)中。
缓存 频繁访问的数据存储在缓存中(例如,Redis 或 Memcached)。
对象存储 图片和视频存储在对象存储中,相应元数据存储在数据库中。
异步任务 发送通知等异步任务发送到队列。
后台 worker 后台 worker(如 Celery)从队列检索任务并执行必要的处理。
数据库更新 Celery worker 还在数据库中执行必要的更新。
前端性能 8 大技巧
查看这些 8 个技巧提升前端性能:
压缩(Compression) 传输前压缩文件并最小化数据大小以减少网络负载。
选择性渲染/窗口化(Selective Rendering/Windowing) 仅显示可见元素以优化渲染性能。例如,在动态列表中,仅渲染可见项。
模块化架构与代码拆分(Modular Architecture with Code Splitting) 将更大的应用包拆分为多个更小的包以高效加载。
基于优先级的加载(Priority-Based Loading) 优先处理基本资源和可见(或首屏以上)内容以获得更好的用户体验。
预加载(Pre-loading) 在请求前提前获取资源以提高加载速度。
Tree Shaking 或死代码移除(Tree Shaking or Dead Code Removal) 通过移除永远不会使用的死代码优化最终 JS 包。
预取(Pre-fetching) 主动获取或缓存可能很快需要的资源。
动态导入(Dynamic Imports) 基于用户操作动态加载代码模块以优化初始加载时间。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP154: What is MCP?。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。