朴素的代码,驾驭过亿次的请求

大模型免费背后的分层架构与推理成本优化 大模型免费并非能力降级,而是基于模型分层、推理优化与成本控制的工程化实践。其核心原理在于通过模型蒸馏、FP8量化、vLLM连续批处理等技术手段,在保障基础用户体验前提下大幅压缩GPU小时成本与内存开销。这种‘普惠层’策略的技术价值在于将AI能力转化为可规模化交付的基础设施服务,支撑从个人创作、中小企业提效到垂类场景落地的多元应用。文中深入解析文心一言L1层架构,涵盖PagedAttention内存管理、动态路由调度及安全后处理等关键环节,揭示‘免费’表象下真实的工程深度与商业化逻辑。 阅读详情

原文地址 https://notes.billmill.org/blog/2024/06/Serving_a_billion_web_requests_with_boring_code.html

当我在一家数字服务公司担任美国政府的承包商时,有幸获得了机会 -- 设计重启医疗保险计划,这是一个美国政府网站,每年有成千上万的医疗保险受益人通过它购买医疗保险计划。

经过一年多的开发,我们发布了该网站,并帮助数百万人找到并购买了医疗保险 -- 如果你在美国,你很可能认识使用过该系统的人。

虽然美国的医疗保健系统在很多方面都非常糟糕,但我还是为团队在短时间、诸多限制条件下建立的系统感到非常自豪。

与我共事的团队成员,包括经理、设计师、工程师和业务分析师,从上到下都非常优秀。我以前从未经历过如此敬业、协作、相互信任的团队,我从他们身上学到了 很多东西。

我特别想分享这个故事,因为我想告诉大家,在政府的限制下也能编写出高质量的软件。是可以的!如果我们都开始相信这点,我们就更有可能写出高质量的软件。

1 高水平

我在这个系统上工作了大约两年半,从第一次提交到经历两个开放注册期。

API 系统在正常工作日提供约 500 万次请求服务,平均请求延迟时间小于 10 毫秒,100 次测试里的 95 次延迟时间小于 100 毫秒。

它的错误率基线非常低,主要是由于漏洞扫描器造成的虚假错误。令我自豪的是,我一只手就能数出工程师被叫醒去处理紧急页面的次数。

我很惊讶地发现,依靠 postgres 和 golang,尽可能保持系统的有序性和简洁性,并在很长一段时间内每天投入工作,就能取得这么大的成就。

2 无聊至上

在构建系统时,我的首要目标是尽可能保持枯燥,就像丹·麦金利(Dan McKinley)所说的那样。(如果你还没有读过《选择无聊的技术》,就去读读吧,这是必读书目。它比这篇文章好)。

这篇文章中有一个「创新代币」的概念,我在选择用于构建网站的代币时,明确了如何去使用这些代币。

无聊的部分

  • postgres -- 我喜欢在它的基础上构建我的系统
  • golang -- 我曾在 healthcare.gov 工作中使用过,对它的可靠性和相对简单性非常有信心
  • react -- 就我们在这里讨论的意义而言,react 是枯燥的,但它已被广泛部署,而且我的队友对它非常熟悉

为什么选择 React?

对 React 的批评很多是有道理的;这篇文章(https://infrequently.org/2021/03/the-performance-inequality-gap/)就是一个例子,我在 2018 年建设网站时就已经意识到了这些问题。主要是它倾向于使用大型应用捆绑包,下载和执行需要很长时间,尤其是在廉价的手机上,而手机是许多人连接互联网的主要方式。

在为政府建设基础设施的过程中,我们尤其希望尽可能多的人都能使用该应用。我们非常重视网站的可访问性,既要为残疾用户提供适当的设计,也要考虑到人们需要使用多种设备来连接网站。

尽管如此,我还是为网站选择了 SPA(单页面)架构和 react。

我很想采用不同的方法,但我担心使用多页面架构或不同的库会拖慢我们的进度,导致我们无法在短时间内完成。当时,我对任何可用的替代方案都没有足够的信心,以至于我不相信我们可以安全地选择它们。

结果,几年后,我们就陷入了 react 应用的常见故障模式,系统变得相当笨重,加载速度也有点慢。

我仍然认为我当时的选择是正确的,但不幸的是,我觉得我必须做出这样的选择,我希望我当时知道有一种干净利落的方法可以避免这种情况。

Golang

总体而言,使用 Golang 来构建这个项目非常愉快。无论是在构建时还是在运行时,它都能高效运行,而且快速构建的二进制可执行工件使其易于快速部署。

刚接触这种语言的开发人员(我们的工程师团队从 2 人增加到了 15 人)能够很快上手,并轻松理解。

在我看来,即时和详细的错误处理是构建弹性系统的一大特色。每当你做一件可能会失败的事情时,你都会面临处理错误的情况,而一旦你形成了模式,它们就会是一致的、可预测的。(我知道这是一个很大的话题,也许我应该写更多关于它的文章)。

就在我们能够转用模块的那天,我们的一大痛点消失了。作为早期采用者,我们在路上遇到了一些坎坷,但这是值得的。

我对 golang 生态系统最大的不满是,非公开项目的文档生成非常糟糕。有很长一段时间,文档生成器甚至不支持使用模块的项目。

尽管如此,我对自己的选择非常满意,从未后悔过。

3 创新代币

我在架构方面下了两个信心不太足的赌注:

  • 模块化后端 -- 我既没有把后端设计成微服务,也没有设计成单体,而是设计成了三个大模块
  • gRPC - 后端服务通过 gRPC 相互通信,并通过 grpc-gateway 与网络客户端通信

模块化后端

我将后端分成了三个部分;它们都位于同一个资源库中,但在设计上,它们可以拆分开来,在必要时交给新的团队使用。

每个组件都有自己的 postgres 数据库(物理上位于同一地点,但从未交织在一起),它们之间严格使用 gRPC 进行通信。

拆分主要是基于数据访问模式:

  • 药物定价(又名药物信息) 该网站需要做的一件事是估算任何医疗保险计划下任何药店的任何包装药品的成本。很简单吧?

这种组合爆炸(我曾经计算过这有多少万亿种可能性)需要一个非常仔细索引的数据库、大量的预处理,以及对工程性能的投入。

我花了很长时间,通过大量的政府卫生系统逆向工程,才想出了如何将这部分工作做到最好。我永远感谢我的同事们,他们深入 CMS(https://www.cms.gov/) 的体系,然后将其转化为文档和代码。

  • 计划搜索(又名计划信息) 该网站的主要目的是让人们搜索和购买医疗保险 C 部分和 D 部分的医疗保健计划。

每天,我们都会从 CMS 获得新的医疗计划详细信息;该模块会将信息加载到一个新的 postgres 数据库中,然后我们会部署一个新版本,指向新一天的数据。

通过这种方式,计划信息和药物信息都拥有了完全不可变的数据库;它们唯一的工作就是根据各自的最新数据提供 API 服务。

  • 受益人信息 在保险术语中,参加医疗保健计划的人就是该计划的「受益人」。在我看来,这听起来有点自以为是,但我想这就是事实。 (在整个项目过程中,我努力做到的一件事就是尽可能使用正确的行业术语,而不是我自己更熟悉的术语。我觉得把行话的摩擦降到最低也是「无趣 」承诺的一部分)。

受益人信息模块的任务是存储计划客户的信息,这也是应用程序中数据库唯一长期存在且可变的部分。

我们努力在这里存储尽可能少的数据,以便在数据泄漏时将风险降到最低,但存储大量的个人身份信息(PII)是无法避免的。我们尽可能认真对待这些数据,失去控制的风险让我时刻感到紧张。

gRPC

总的来说,gRPC 对我们来说并不像我在项目开始时希望的那么好。

使用 gRPC 的最大好处,也是我选择使用 gRPC 的原因,是它可以在代码中指定每个接口。这非常有用;我们可以生成同步变化的工具和界面。

最大的痛点都与工具有关。我维护了一套非常毛糙的 makefile,其中包含了大量的 protoc 命令,用于将所有接口构建成我们可以使用的 go 文件,而调试这些文件总是非常痛苦。

grpcurl 虽然存在,我们也用过,但还不如 JSON API 好用。

grpc-gateway 是我使用过的生态系统中最好的部分,它为我们提供了超过十亿次请求,而且从未出现过问题。它让我们完成了 gRPC 从一开始就应该完成的任务,为网络客户端提供请求服务。

我喜欢使用接口模式,但我们使用的 gRPC 功能太少,代码生成也非常复杂,如果没有它,我们可能会过得更好。

4 严格的向后兼容性

我们严格遵守向后兼容性要求,只在接口中添加字段,从不删除。一旦某个字段在公共应用程序接口中公开,它就会永远公开,除非它成为一个安全问题(值得庆幸的是,在我参与这个项目的这些年里,从未遇到过这种情况)。

我们对数据库的处理方式与 API 相同;列只会被添加,很少会被删除。如果某一列确实需要移除,我们的做法是添加一列,移除对旧列的所有引用,等待几周以确保不需要回滚,最后再从数据库中移除该列。

我们对向后兼容性的严格要求使我们能够自由地保持较高的更改速度,并确信本地更改不会对下游产生负面影响。

5 分面搜索

该应用的核心原则是尽可能依赖 postgres,同时尽可能愚蠢而不是聪明。

分面搜索就是这两种特性的极佳例证。我们本可以使用 elasticsearch,也可以尝试使用 ORM 或构建一个小的分面语言。

我们实现分面搜索的方法是拥有一个索引良好的计划表,并根据一长串条件建立 SQL 查询字符串。

实现该方案核心部分的 buildQuery 函数是一个 250 行的函数,有大量注释,以近乎扁平的方式列出了逻辑。重点干脆地放在业务需求上,而不是花哨的代码上。

6 数据库

创建

我们将数据库 schema 存储在一系列带前导数字的 .sql 文件中,以便在创建数据库时按顺序加载。

对于计划信息和受益人信息,由于数据库每天都要重新创建,因此没有进行迁移。相反,数据库和应用程序中都存储了版本号。鉴于我们(极力避免)对数据库进行向后不兼容的更改,应用程序在启动时会检查其数据库模式版本号是否大于或等于数据库中存储的数据库版本号,如果不一致,则拒绝启动。

这是一般模式:如果应用程序遇到任何意外或缺失的配置,它就会拒绝启动,并抛出明显的错误,希望这些错误是明确的。 我努力使应用程序在实际启动时,拥有正常运行所需的一切。

偶尔我们也会不小心对数据库进行了向后不兼容的变更,在这种情况下,我们通常会回滚数据更新并重新构建。

ETL

系统中最令我自豪,也是我花费精力最多的部分是 ETL 流程。

我们为每个数据源(有很多)编写了一系列 shell 脚本,这些脚本会提取数据并将其放入一个 s3 bucket。

然后,在清晨,一个 cron job 会启动一个 EC2 实例,该实例会调入最新的 ETL 代码和所有数据文件。它会在我们的 RDS 实例中建立一个新数据库,然后开始 ETL 流程。

如果一切顺利,在东岸人上班的时候,新数据库就会投入使用。

我的记忆并不准确,但从几千兆字节的各种格式文本文件中生成一个拥有超过 2.5 亿行的新数据库大概需要 2 到 4 个小时。

向数据库中插入数据的代码大量使用了 postgres 的 COPY 语句,尽可能避免 INSERT,而是生成一批可以 COPY 到数据库中的集合。

模型

我们使用 xo 库(https://github.com/xo/xo)连接数据库并生成模型以及大量定制的模板。

模板本身以及根据模板创建模型的代码都很繁琐。所幸的是,这些代码只需编写一次,偶尔进行编辑即可。

测试

这是我最大的失误:我投入了大量的时间和精力为经常变化的数据创建 sql-mock(https://github.com/DATA-DOG/go-sqlmock)测试。这些测试需要持续、繁琐的维护。

相反,我应该针对实时数据库进行测试,尤其是考虑到我们主要使用的是不可变数据库,这样就不必为每次测试重新创建数据库了。

用于开发的本地数据库

由于最终数据库太大,无法在开发人员的机器上运行,因此数据库中的每个表都有一个附带脚本,用于生成本地开发所需的数据子集。

这样,每个开发人员都可以使用数据库的本地实时副本,并能高效地开发更改。

我强烈建议从一开始就建立这种工具,这样可以避免在数据库变大后再添加,或者让团队连接到远程数据库,从而降低开发速度。

7 杂项工具

我们有一个 CLI 工具,主要是以一堆 shell 脚本的形式编写的,有大量可用的命令,可以执行与可观测性和操作相关的各种实用功能。

它主要是由一位优秀的同事编写的,在使用它的过程中,我学会了如何编写有效的 shell 脚本。(感谢 Nathan 和 shellcheck https://www.shellcheck.net/ 为我提供了这项重要技能)。

从一开始,这个工具就为实用功能的归集提供了一个非常有用的场所;如果没有它,这些功能往往会分散到很远的地方,或者只是活在开发者的 shell 历史中。 我创建的一个有趣的工具是通过 slack 命令从 splunk(我们的日志聚合服务)生成图表的能力,这对事件处理特别有帮助,因为你可以轻松地与同事分享图表。

8 日志记录

每一个进入后台的请求在进入系统后都会得到一个请求 ID,这个请求 ID 会随请求一同进入系统。中间件为请求提供 ID,然后另一个中间件构建一个子日志,将请求 ID 嵌入其中,并附加到请求上下文中,这样所有日志都会附加请求 ID。

系统会记录进入和退出日志,在安全的情况下记录尽可能多的细节。任何其他调试级别以上的日志都应视为特殊,尽管我们对此并不严格。

我们使用的是 zerolog(https://pkg.go.dev/github.com/rs/zerolog),效果非常好。

9 文档

后来,我使用 sphinx-book-theme(https://sphinx-book-theme.readthedocs.io/en/stable/tutorials/get-started.html)将我和其他人在 github 上写的 Markdown 文档转换成了一本关于系统如何工作的书。

神奇的是,这本书得到了广泛的关注,队友们为我提供了很多帮助,每个人都知道去哪里可以找到系统文档。

我曾为许多其他项目创建过文档网站,但没有一个网站能像它一样成功,我希望我能知道这是为什么,但我不知道。

它以我们的吉祥物(柯基犬)为特色,自豪地展示着它最显著的特点:

file

10 运行时集成

我们的客户经常希望我们添加可在浏览器上运行的查询,而我很幸运能够讲这些需求退回,将其中一部分转为构建时请求。

在客户的要求下,我们的性能遭到破坏的一个地方是渲染阻塞分析脚本;似乎每个团队都希望运行不同的脚本来获得他们 "需要 "的分析结果。我建议他们不要这样做,并试图证明这样做会带来的性能和下载大小问题,但客户对我的论点不感兴趣。

--

像这样的系统还有很多我在这里没有提及到;我主要是想在我还记得一些的时候,记录一下。

我很幸运能与这样一个积极、有创造力和参与性的团队合作,他们为这样一个成功的项目创造了可能。如果要写一篇关于是怎样的社会因素和个人性格让这个项目进行,那么将是另一篇类似这篇篇幅的文章。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

Big O实战指南:从算法复杂度到线上性能瓶颈的精准诊断 Big O符号是描述算法随输入规模增长的渐近时间复杂度的核心工具,它剥离常数因子与低阶项,聚焦决定系统性态的最高阶增长规律。理解O(1)、O(log n)、O(n)、O(n log n)和O(n²)等常见复杂度的本质差异,有助于识别代码中的性能红区——例如嵌套循环隐含的平方级爆炸风险,或哈希表在哈希碰撞下的退化陷阱。其技术价值不仅在于理论分析,更在于驱动工程决策:指导索引设计、缓存策略、数据结构选型及近似算法引入。典型应用场景包括实时榜单聚合、共同好友计算、向量相似搜索等高并发、大数据量服务。本文以真实故障 阅读详情

相关推荐

Nginx C模块开发实战:从echo模块深入HTTP处理机制

Nginx C模块是实现高性能、低延迟、高确定性网络逻辑的核心技术路径。其本质是将业务逻辑深度嵌入Nginx事件驱动引擎,依托内存池管理、缓冲区链表(ngx_chain_t)、配置阶段化(preconf/postconf)和HTTP请求生命周期钩子等底层机制,规避解释器开销、进程创建与GC抖动。相比Lua、Python或反向代理方案,C模块在API鉴权、边缘动态注入、安全审计日志等场景中可达成微秒级延迟与零拷贝I/O。本文以可复现的echo模块为入口,解析ngx_module_t结构体、handler执行流

diaozhiwa5526的博客 461

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 475

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档)

本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。

招风的黑耳优快云 183

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 426

数学不好是原罪——高等数学笔记(汇总版)

这是本人之前考研的高数手写笔记,工科学硕数一考了146(满分150),笔记有一定参考价值,欢迎大家收藏借鉴。

xuuyann 5万+

MTK平台 MT6789 烧录 efuse 3.0 Configuration SOP

=====================生成cert1和cert2 key===============================================生成efuse key相关文件===========================================签名DA==========================================================正常编译。=====================Security3.0 的SOP 说明。

a785722173的博客 2333

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 244

2022李宏毅作业hw1—新冠阳性人员数量预测。

从非常基础的内容开始,主要是我的水平也很基础。

YI_SHU_JIA的博客 1万+

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 378

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类。

十多年IT经验,专注机器视觉,智能制造半导体行业 5034

AMDGPU IH(Interrupt Handler)实现分析

AMDGPU IH环形缓冲区机制是显卡驱动中高效处理GPU硬件中断的核心架构。该机制通过环形缓冲区存储中断事件,利用读写指针(wptr/rptr)同步硬件与驱动间的数据交互。硬件写入事件后驱动遍历处理,通过指针掩码实现环形循环,并具备溢出检测和虚拟化环境下的重置保护。其优势在于批量处理降低中断开销,指针同步确保可靠性,支持多队列扩展和SR-IOV虚拟化场景,为GPU中断管理提供了高性能基础架构。

图形/计算GPU的驱动与虚拟化技术分享园地 1640

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 266

喷涂机器人系列编程:ABB IRB 5500_(9).常见故障诊断与排除

ABB IRB 5500 喷涂机器人在实际应用中可能会遇到各种故障,但通过系统的诊断和排除方法,可以确保生产线的连续运行。定期维护和保养是预防故障的重要手段,而操作培训和规范则能有效减少人为因素引起的故障。希望本节内容能帮助操作和维护人员提高故障诊断和排除的效率,确保喷涂机器人的稳定运行。如果您有任何疑问或需要进一步的帮助,请联系 ABB 客户服务中心。

zhubeibei168的博客 1045

不用再为文本搜索单独维护一套系统!全文检索深度解析

为了给商品、客服工单或者企业知识库增加一个搜索框,企业往往需要在业务数据库之外,再部署一套Elasticsearch。数据库保存商品、订单和用户等真实业务数据,搜索引擎保存另一份文本索引;两套系统之间,还需要通过CDC、消息队列或者同步程序持续传输数据。一个看似简单的搜索需求,最后可能变成两套集群、两份数据和一条必须保持稳定的数据链路。由此产生的问题并不少:数据库已经完成更新,搜索结果却可能尚未同步;业务查询同时涉及文本、库存、权限和订单状态时,应用需要在两个系统之间来回组合结果;

TiDB 社区干货传送门 310

scratch绘制四个三角形 2024年6月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

​ scratch绘制四个三角形 一、题目要求 2024年6月电子学会图形化编程Scratch等级考试二级真题 1、准备工作 1.保留默认角色小猫; 2.添加背景Stars。 2、功能实现 1 .隐藏角色小猫,设置画笔裙始位置为(0,0),画笔颜色为黄色,画笔的粗细为5; 2. 点击绿旗,绘制如下图所示图形,三角形的边长为50。 二、案例分析 1、角色分析 角色:小猫 2、背景分析 背景:Stars背景 3、前期准备 1. 保留默认的小猫不变 ​

青少年编程学习指导 1718

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 298

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 174

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TransactionInactiveError:await 之后事务已经不活跃了

TransactionInactiveError 出现于 IndexedDB 事务已结束(非 active 状态)时调用 put、get 等操作。常见于 await 后或 setTimeout 中执行请求,因任务已完成,事务已提交或进入 finished 状态。请求必须在创建事务的同一任务中挂起,否则无效。解决方法:在 onsuccess 回调内同步发起后续操作,或提前将所有请求挂入事务。避免在异步上下文中使用事务操作,确保请求在事务活跃期内完成。

qq_40822000的博客 158

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 198

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

市场调查与统计分析专业大学期间考证怎么安排?

市场调查与统计分析专业的考证规划,适合从一份完整的调查报告倒推:能不能设计问卷、判断样本是否合理、清洗数据,再把分析结果转化为业务建议?围绕这条能力链安排证书,比单纯按“热门程度”报名更有针对性。结合2026年的学习安排,并为2027年的实习、升学和求职预留时间,大学期间可以重点考虑六类证书:全国计算机等级考试证书、大学英语四级或六级成绩报告单、CDA数据分析师、初级统计专业技术资格证书、微软办公软件国际认证中的Excel相关证书,以及软考数据库系统工程师资格证书。

cc572502653的博客 166

软件项目交付时,源代码之外还应该交付哪些技术资料?

软件项目交付时,除可运行程序外,还应核对源代码、数据库结构、接口文档、部署运维、测试验收和账号资产。本文从实际交付环节拆解完整资料清单,并说明合同如何约定交付范围、知识产权与维护边界。

chengduyoushu的博客 299

大表 ALTER TABLE 怎么做?NineData OnlineDDL 配置与执行实践

介绍NineData OnlineDDL大表变更实践,涵盖执行策略、切表控制、拷贝批次与可视化进度追踪。

dbasenewbie的博客 293

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 325

Agent 安全实战:间接提示注入的四个攻击面与防御体系

当 Agent 从 "生成内容" 走向 "执行动作",安全边界就从内容合规变成了权限越界。本文拆解间接提示注入在网页抓取、工具返回值、MCP 连接器、长期记忆四个位置的真实攻击路径,对照 Claude、GPT、Gemini 在工具调用权限模型上的设计差异,给出可直接落地的五层防御体系。

阡陌数智,专注大模型网关与 LLM 工程落地 270

Redis 入门详解:核心特性、重要文件与全局命令实战

本文系统介绍了Redis的核心特性、重要文件及全局命令。Redis凭借内存存储、C语言实现和单线程设计,具备极高的读写性能;支持持久化(RDB/AOF)、主从复制与集群架构,适用于缓存、排行榜、计数器等场景,但不适合存储海量冷数据。文中还解析了常见面试题,如为何快速、单线程原理、持久化机制、KEYS *禁用原因及过期键处理策略,强调其在高并发场景下的优势与局限。

2303_77004089的博客 204

【FDE前沿部署工程师实战教程】第62章:Enterprise AI Developer Platform——企业级 AI 开发者平台与低代码 AI 应用工厂

企业从AI能力平台迈向AI应用生产平台,需构建统一的企业级AI开发者平台,将模型、RAG、Agent、Workflow等能力封装为可视化、可复用的开发工具。通过PromptIDE、AgentBuilder、WorkflowBuilder等模块,实现低代码与专业代码协同,降低开发门槛。平台覆盖应用全生命周期管理,集成测试评估、安全治理与CI/CD发布体系,推动AI应用规模化、标准化交付。最终形成“需求→设计→开发→测试→发布→运营”的企业AI应用工厂模式,助力制造等行业的智能化转型。

IT古董 313
上一篇: 用 Bytebase 实现批量、多环境、多租户数据库的丝滑变更
下一篇: 从微软蓝屏事件聊到数据库系统中的纸牌屋
Bytebase
博客等级 码龄5年 1348粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值