通用软件项目技术报告 - 术语词典
-
Schema (数据库模式): 数据库中数据的组织和结构描述,包括表/集合、字段/属性、数据类型、约束和关系。是数据库的“蓝图”。
-
PostgreSQL: 一款功能强大的开源关系型数据库管理系统 (RDBMS),强调SQL兼容性、数据完整性和可扩展性。
-
MongoDB: 一款流行的开源 NoSQL 文档数据库,以其灵活性、可伸缩性和面向文档的存储模型而闻名。
-
关系型数据库 (Relational Database): 基于关系模型的数据库,数据存储在结构化的二维表中(行和列),通过 SQL 进行查询和管理。
-
NoSQL 数据库 (Not Only SQL): 泛指非关系型的数据库,通常不保证严格的ACID特性,但具有高可扩展性、灵活性等优点。包括文档数据库、键值存储、列式数据库、图形数据库等。
-
一致性 (Consistency - 数据库领域): 确保数据库中的数据在任何时候都符合预定义的规则、约束和业务逻辑。例如,在关系型数据库中,外键约束保证了引用完整性。
-
完整性 (Integrity - 数据库领域): 数据的准确性、一致性和有效性。通过约束(如主键、外键、唯一约束、检查约束)来维护。
-
范式化设计 (Normalization): 在关系型数据库设计中,通过一系列规范(范式,如1NF, 2NF, 3NF)来组织数据,以减少数据冗余、提高数据一致性的过程。
-
事务 (Transaction): 一系列数据库操作的集合,这些操作要么全部成功执行,要么全部不执行(回滚),以保证数据的原子性、一致性、隔离性和持久性(ACID特性)。
-
文档 (Document - MongoDB): MongoDB 中数据的基本单元,类似于 JSON 对象,由字段和值对组成,可以包含嵌套文档和数组。
-
集合 (Collection - MongoDB): MongoDB 中存储文档的分组,类似于关系数据库中的表。
-
BSON (Binary JSON): 一种二进制编码的序列化格式,用于在 MongoDB 中存储文档和进行数据交换。它是 JSON 的超集,支持更多数据类型。
-
Schema Validation (MongoDB): MongoDB 提供的功能,允许用户为集合定义数据验证规则,以确保写入的数据符合特定的结构和类型要求,尽管其核心是灵活模式。
-
嵌入 (Embedding - MongoDB): 将相关数据直接存储在父文档内部的一种数据建模技术。
-
引用 (Referencing - MongoDB): 在一个文档中存储对另一个文档的引用(通常是其
_id
),类似于关系数据库中的外键。 -
水平扩展 (Horizontal Scaling / Sharding): 通过将数据分布到多个服务器上来增加系统容量和性能的方法。
-
ACID特性: 数据库事务必须具备的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。关系型数据库通常强调对 ACID 的严格支持。
-
主键 (Primary Key): 表中用于唯一标识每一行记录的一个或一组字段。主键值必须唯一且不能为空。
-
外键 (Foreign Key): 一个表中的字段,其值对应另一个表的主键。用于建立和加强两个表数据之间的连接,保证引用完整性。
-
自增类型 (e.g., BIGSERIAL, AUTO_INCREMENT): 一种特殊的列属性,当插入新行时,数据库会自动为该列生成一个唯一的、通常是递增的数字。
-
UUID (Universally Unique Identifier): 一种128位的标识符,设计为在空间和时间上都具有全局唯一性。
-
VARCHAR(n): 关系数据库中用于存储可变长度字符串的数据类型,n 是最大长度。
-
JSONB (PostgreSQL): PostgreSQL 中存储 JSON 数据的二进制格式,比纯文本 JSON 格式在存储效率、索引和查询操作上更有优势。
-
TIMESTAMP WITH TIME ZONE: 存储日期和时间信息的数据类型,并且包含时区信息。
-
DEFAULT (约束): 定义当插入数据时如果没有为某个列提供值,则使用指定的默认值。
-
触发器 (Trigger): 数据库中与表相关联的一种特殊存储过程,当表上发生特定事件(如 INSERT, UPDATE, DELETE)时会自动执行。
-
范式化设计 (Normalization): 关系数据库设计理论,通过一系列规则(范式)来组织数据,以最小化数据冗余、增强数据一致性,并避免插入、更新和删除异常。
-
数据冗余 (Data Redundancy): 同一份数据在数据库中存储多次的现象。
-
更新异常 (Update Anomaly): 由于数据冗余,更新数据时只更新了部分副本,导致数据不一致。
-
插入异常 (Insertion Anomaly): 由于表结构设计不当,导致无法插入某些有效信息,除非同时插入另一些当前可能不存在的信息。
-
删除异常 (Deletion Anomaly): 由于表结构设计不当,删除某些信息时,无意中导致另一些相关但仍有用的信息丢失。
-
第一范式 (1NF): 要求数据库表的每一列都是不可分割的原子数据项。
-
第二范式 (2NF): 在1NF基础上,消除非主属性对主属性的部分函数依赖(主要针对联合主键)。
-
第三范式 (3NF): 在2NF基础上,消除非主属性对主属性的传递函数依赖。
-
反范式化 (Denormalization): 在数据库设计中,为了提高查询性能或简化查询,故意违反范式化规则,引入少量数据冗余的过程。
-
唯一性约束 (Unique Constraint): 确保表中的一个或一组列的值组合是唯一的,不允许重复。
-
索引 (Index): 数据库中一种特殊的数据结构,用于加速对表中数据的查询速度。它存储列值和指向实际数据行的指针。
-
B-Tree 索引: 最常见的一种索引结构,适用于等值查询和范围查询,支持排序。
-
复合索引 (Compound Index / Composite Index): 建立在表中多个列上的索引。索引的顺序很重要。
-
索引前缀 (Index Prefix): 复合索引的第一个或前几个列。查询如果只涉及到索引前缀,也可以利用该复合索引。
-
GIN 索引 (Generalized Inverted Index - PostgreSQL): 一种索引类型,特别适合索引包含多个组件值的列,如数组、JSONB、全文搜索向量。
-
表达式索引 (Expression Index / Functional Index - PostgreSQL): 对函数或表达式的结果进行索引,而不是直接对列值索引。
-
SQL (Structured Query Language): (再次提及) 用于定义、操作和查询关系数据库中数据的标准语言。上述
CREATE TABLE
,CREATE INDEX
,CONSTRAINT
等都是SQL语句。 -
B-Tree 索引 (对复合索引的补充): 当用于复合索引时,B-Tree 会按照索引定义中列的顺序进行层级排序和查找。
-
索引名称 (Index Name): 用户为索引指定的一个唯一标识符,用于管理该索引对象。它与表中的列名是不同的概念。
-
SQL 示例 (SQL Example): 一段具体的 SQL 代码,用于演示如何实现特定的数据库结构或操作。
-
CREATE EXTENSION
(PostgreSQL): 用于在数据库中加载和注册扩展模块,以提供额外的功能或数据类型(如uuid-ossp
用于生成 UUID)。 -
CONSTRAINT
(SQL): 用于定义施加于表数据上的规则,以保证数据的完整性和一致性。例如主键约束、外键约束、唯一约束、检查约束。 -
ON DELETE CASCADE
(外键约束选项): 当被引用的父表记录被删除时,自动删除所有引用该记录的子表记录。 -
行级触发器 (Row-level Trigger): 对表中数据行发生的每个更改(插入、更新、删除)都会单独执行一次的触发器。
-
plpgsql
(PostgreSQL Procedural Language/SQL): PostgreSQL 的一种过程化编程语言,允许在数据库中编写复杂的函数和触发器。 -
NEW
(触发器内变量): 在INSERT
或UPDATE
触发器中,NEW
是一个特殊的记录类型变量,代表将要插入的新行或更新后的行数据。 -
事件日志 (Event Log): 按时间顺序记录系统中发生的各种事件(如用户操作、系统事件、错误)的数据集合。
-
_id
(MongoDB): MongoDB 中每个文档的默认主键字段,通常是一个自动生成的ObjectId
类型的值。 -
ObjectId (MongoDB): 一种12字节的BSON类型,设计为全局唯一且大致按时间排序,由时间戳、机器标识、进程ID和计数器组成。
-
载荷 (Payload): 消息或数据结构中实际承载具体信息的部分。在事件日志中,
payload
字段通常包含特定于该事件类型的详细数据。 -
微服务架构 (Microservices Architecture): 一种软件架构风格,将大型复杂应用拆分为一组小型的、独立部署的、松耦合的服务,每个服务关注特定的业务功能。
-
分布式追踪 (Distributed Tracing): 在微服务架构中,用于跟踪和可视化跨多个服务的请求调用链路的技术,帮助理解系统行为和诊断性能问题。
-
索引策略 (Indexing Strategy): 为数据库选择和创建索引的方法和原则,旨在优化查询性能。
-
单键索引 (Single-key Index - MongoDB): 只在文档的一个字段上创建的索引。
-
复合索引 (Compound Index - MongoDB): 在文档的多个字段上创建的索引。
-
最左前缀原则 (Leftmost Prefix Rule - MongoDB): 在复合索引中,MongoDB 可以使用索引来支持针对索引的第一个字段、前两个字段的组合,依此类推的查询,但不能跳过前面的字段。
-
TTL 索引 (Time-To-Live Index - MongoDB): 一种特殊的单字段索引,允许 MongoDB 根据文档中 Date 类型字段的值,在经过指定的秒数后自动删除该文档。
-
Capped Collection (MongoDB): 一种固定大小的集合,其行为类似于循环缓冲区,当达到容量上限时,新文档会覆盖最早的文档。写入性能极高,但功能受限。
-
Sharding (分片 - MongoDB): MongoDB 的一种水平扩展技术,将数据分散存储在多个服务器或分片中。
-
expireAfterSeconds
(TTL索引参数 - MongoDB): 指定文档在索引字段(Date类型)的值之后多少秒过期。 -
.
(点表示法): 在 MongoDB 查询和索引中,用于引用嵌套文档中的字段。 -
Capped Collection (限制补充): 不支持删除单个文档;不允许更新文档后增加其物理大小;不支持分片。
-
碎片 (Fragmentation): 在存储系统中,由于数据删除或更新导致空间不连续,形成小的、未被使用的空间片段。
-
点表示法 (Dot Notation - MongoDB): 在 MongoDB 中,使用点号 (
.
) 来访问或引用嵌套文档或数组中的元素。 -
实体 (Entity): 在数据库设计中,代表现实世界中具有独立存在意义的事物(如用户、商品、订单)。通常对应数据库中的一个表。
-
一对多关系 (One-to-Many Relationship): 两个实体之间的关系,其中一个实体的单个实例可以与另一个实体的多个实例关联,但另一个实体的单个实例只能与第一个实体的单个实例关联(如一个用户有多个订单)。
-
多对多关系 (Many-to-Many Relationship): 两个实体之间的关系,其中一个实体的单个实例可以与另一个实体的多个实例关联,反之亦然(如一个订单包含多种商品,一种商品出现在多个订单)。
-
关联表 (Association Table / Join Table): 在关系数据库中,用于实现两个实体之间的多对多关系的一个中间表。它通常只包含指向那两个实体表主键的外键。
-
检查约束 (CHECK Constraint): 数据库约束,用于确保列中的值满足指定的条件表达式。
-
连接查询 (JOIN Query): 在关系数据库中,将两个或多个表的行基于相关列之间的共同值组合起来的查询。
-
覆盖索引 (Covering Index - PostgreSQL): 一种索引,包含了查询所需的所有列数据,使得数据库可以直接从索引中返回结果而无需访问数据行。
-
订单项 (Order Item): 在电商系统中,指一个订单中包含的某个具体商品及其数量等信息,通常对应关联表中的一条记录。
-
Schema (命名空间 - PostgreSQL): PostgreSQL 中用于组织数据库对象的逻辑容器,可以包含表、视图、函数等。
-
枚举类型 (ENUM - PostgreSQL): 一种数据类型,其值被限制为列表中预定义的一组字符串之一。
-
分区 (Partitioning - PostgreSQL): 将一个大表在逻辑上分成多个小表(分区),每个分区独立存储和管理,以提高性能和管理效率。
-
视图 (View - PostgreSQL): 一个虚拟的表,其内容由一个查询定义。
-
物化视图 (Materialized View - PostgreSQL): 一个存储了查询结果的物理表,需要定期刷新以获取最新数据。
-
查询驱动设计 (Query-Driven Design): 一种数据库 Schema 设计方法,核心思想是根据应用程序的查询需求来组织数据结构。在 MongoDB 和 Cassandra 中尤为重要。
-
一对少关系 (One-to-Few Relationship - MongoDB): 一对多关系的一种特殊情况,其中“多”的一方数量非常有限。通常适合使用嵌入。
-
原子性 (Atomicity - MongoDB): 指单个文档的操作是原子性的,要么全部成功,要么全部失败。
-
分桶模式 (Bucket Pattern - MongoDB): MongoDB 中的一种 Schema 设计模式,将可能无限增长的相关文档按某个维度(如时间)分组存储在一个“桶”文档中,以避免数组无限增长。
-
模式版本控制 (Schema Versioning - MongoDB): 在文档中添加版本字段,以便应用程序处理不同结构的文档。
-
多键索引 (Multi-key Index - MongoDB): 专门用于索引数组字段的索引类型。
-
文本索引 (Text Index - MongoDB): 支持对字符串内容进行全文搜索的索引类型。
-
地理空间索引 (Geospatial Index - MongoDB): 支持地理位置数据查询的索引类型。
-
ESR 规则 (Equality, Sort, Range): 设计复合索引的一个经验法则,按等值、排序、范围的顺序放置字段。
-
Cassandra: 一种高可用、高性能、分布式的 NoSQL 列式数据库。
-
列式数据库 (Columnar Database): 数据按列而不是按行存储的数据库,适合分析型查询。Cassandra 严格来说是宽列存储 (Wide-Column Store)。
-
分区键 (Partition Key - Cassandra): Cassandra 中用于决定数据分布到哪个节点以及在节点内如何分区的键。
-
聚类键 (Clustering Key - Cassandra): Cassandra 中在分区内部对数据进行排序的键。
-
反范式化 (Denormalization - Cassandra): 为了提高读取性能而有意引入数据冗余的设计策略。
-
级联操作 (Cascade Operation): 在数据库或 ORM 中,当对一个对象或记录执行操作(如删除、更新、保存)时,自动对与其关联的对象或记录执行相应的操作。
-
ORM Session (会话): ORM 中一个重要的概念,表示与数据库的一次交互会话。对象通常在 Session 中进行增删改查操作。
-
cascade
(ORM 参数): 用于配置 ORM 中关联对象之间的级联行为。 -
onDelete
,onUpdate
(TypeORM 参数): TypeORM 关系装饰器的参数,用于指定数据库层面的外键级联行为。 -
delete-orphan (SQLAlchemy cascade option): 一种级联行为,当子对象从父对象的集合中移除或父对象被删除时,自动删除子对象。适用于一对一/一对多关系。
-
一对一关系 (One-to-One Relationship): 两个实体间的关系,一个实例只对应另一个实例。
-
一对多关系 (One-to-Many Relationship): 两个实体间的关系,一个实例对应多个实例。
-
多对一关系 (Many-to-One Relationship): 两个实体间的关系,多个实例对应一个实例。与一对多是同一关系的两个方向的描述。
-
多对多关系 (Many-to-Many Relationship): 两个实体间的关系,多对多。
-
uselist=False
(SQLAlchemy):relationship()
的一个参数,用于指定关系的目标是一个单一对象而非列表,常用于一对一关系。 -
back_populates
(SQLAlchemy):relationship()
的一个参数,用于指定在关联的模型类中对应关系属性的名称,以建立双向关系。 -
@OneToOne
,@OneToMany
,@ManyToOne
,@ManyToMany
(TypeORM): TypeORM 中用于定义不同类型关联关系的装饰器。 -
@JoinColumn
(TypeORM): TypeORM 装饰器,用于标记实体中持有外键的列。常用于ManyToOne
和OneToOne
持有外键的一侧。 -
@JoinTable
(TypeORM): TypeORM 装饰器,用于描述多对多关系的关联表信息。常用于@ManyToMany
关系的一侧。 -
inverseSide (TypeORM): 在 TypeORM 关系函数中(如
() => User, user => user.roles
),第二个函数参数(如user => user.roles
)用于指明在关联实体中对应的关系属性。 -
关联表 (Association Table / Join Table): (再次提及,强调其在 ORM 中的配置)
-
ORM (Object-Relational Mapping): 对象关系映射。一种编程技术,用于在面向对象编程语言和关系数据库之间转换数据。
-
模型类 (Model Class): 在 ORM 中,代表数据库中的一个表或集合的类。
-
属性 (Attribute - ORM): 模型类中的成员变量,通常映射到数据库表中的一个列。
-
SQLAlchemy: 一个流行的 Python ORM 和数据库工具包。
-
TypeORM: 一个流行的 Node.js/TypeScript ORM,支持多种数据库。
-
装饰器 (Decorator): 在 Python 和 TypeScript 中,一种语法糖,用于修改类、方法或属性的行为或元数据。TypeORM 广泛使用装饰器。
-
声明式映射 (Declarative Mapping - SQLAlchemy): SQLAlchemy 的一种 ORM 映射风格,允许用户在一个地方同时定义类和表映射。
-
__tablename__
(SQLAlchemy): SQLAlchemy 模型类的一个属性,用于指定映射的数据库表名。 -
Column
(SQLAlchemy): SQLAlchemy 中用于定义模型类属性映射到数据库列的对象。 -
@Entity
(TypeORM): TypeORM 装饰器,用于将一个类标记为数据库实体(映射到表或集合)。 -
@Column
(TypeORM): TypeORM 装饰器,用于将类属性映射到数据库表中的列。 -
@PrimaryGeneratedColumn
(TypeORM): TypeORM 装饰器,用于定义一个自增主键列。 -
relationship()
(SQLAlchemy): SQLAlchemy 中用于定义模型类之间关联关系的函数。 -
@ManyToOne
,@OneToMany
,@ManyToMany
(TypeORM): TypeORM 装饰器,用于定义实体之间的关联关系。 -
加载策略 (Loading Strategy - ORM): ORM 在获取一个对象时,如何以及何时加载其关联对象的策略。
-
延迟加载 (Lazy Loading): 只有在首次访问关联属性时才执行数据库查询来加载关联数据的策略。
-
即时加载 (Eager Loading): 在查询主对象时就同时加载其关联对象的策略。
-
N+1 查询问题 (N+1 Select Problem): 由于延迟加载,在处理 N 个主对象时,触发了 N 次额外的数据库查询来加载它们的关联对象,导致总共执行 N+1 次查询的性能问题。
-
lazy='select'
(SQLAlchemy): SQLAlchemy 延迟加载策略的默认值。 -
lazy='joined'
(SQLAlchemy): SQLAlchemy 即时加载策略,使用LEFT OUTER JOIN
在同一次查询中加载关联数据。 -
lazy='subquery'
(SQLAlchemy): SQLAlchemy 即时加载策略,先查询主对象,再用一次额外查询加载所有关联对象。 -
options(joinedload(...), subqueryload(...))
(SQLAlchemy): 在查询时动态指定加载策略的方法。 -
eager: true
(TypeORM): 在关系装饰器中设置,使得该关系总是被即时加载。 -
relations: [...]
(TypeORM FindOptions): 在find
方法中指定需要即时加载的关系名称列表。 -
.leftJoinAndSelect(...)
(TypeORM QueryBuilder): 在 QueryBuilder 中显式使用LEFT JOIN
来即时加载并选择关联实体。 -
数据库迁移 (Database Migration): 管理和应用数据库 Schema 随时间发生的变化(Schema Evolution)的过程和实践。
-
Schema Evolution (模式演变): 数据库 Schema 由于应用需求变化而发生改变的过程。
-
迁移工具 (Migration Tool): 用于自动化管理数据库迁移的软件工具,提供版本控制、脚本生成、应用和回滚等功能。
-
Alembic: 一个用于 SQLAlchemy 的数据库迁移工具。
-
Flyway: 一个基于 SQL 的数据库迁移工具,适用于 Java 等。
-
Liquibase: 一个支持多种格式(XML, YAML, JSON, SQL)的数据库迁移工具,适用于 Java 等。
-
Django Migrations: Django 框架内建的数据库迁移系统。
-
版本化脚本 (Versioned Script): 迁移工具管理的基本单元,每个脚本代表一次 Schema 变更,并带有唯一的版本标识。
-
数据兼容性 (Data Compatibility): 在数据库 Schema 变更过程中,确保不同版本的应用程序代码能够正确处理不同版本的数据库结构和数据的能力。
-
零停机迁移 (Zero-Downtime Migration): 在不中断应用程序服务的情况下,应用数据库 Schema 变更的过程。
-
扩展-收缩模式 (Expand-Contract Pattern): 一种实现向后兼容的 Schema 变更的策略,通过先添加新结构(扩展阶段)、迁移数据并部署兼容代码,然后移除旧结构(收缩阶段)来完成变更。
-
特性标志 (Feature Flag / Feature Toggle): 一种允许在运行时打开或关闭应用程序特定功能的技术,常用于控制新旧代码路径的切换,配合部署和迁移。
-
蓝绿部署 (Blue-Green Deployment): 一种部署策略,维护两个相同的生产环境(蓝色和绿色),将新版本部署到非活动环境,测试通过后将流量切换过去。
-
金丝雀发布 (Canary Release): 一种部署策略,先将新版本发布给一小部分用户(金丝雀),监控其表现,如果没有问题再逐步扩大发布范围。
-
迁移冲突 (Migration Conflict): 在版本控制系统中合并代码时,由于多个分支都生成了迁移脚本而导致的冲突或迁移历史不一致。
-
DDL (Data Definition Language): SQL 语言中用于定义或修改数据库结构(如表、索引、约束)的命令,例如
CREATE TABLE
,ALTER TABLE
,DROP TABLE
。 -
在线 DDL (Online DDL): 指数据库在执行 DDL 操作时,允许应用程序继续对表进行读写操作,避免长时间锁定。
-
pt-online-schema-change
: Percona Toolkit 中的一个工具,用于在 MySQL 上执行在线 Schema 变更。 -
pg_repack
: 一个 PostgreSQL 扩展,用于在线重组表和索引,可以实现类似在线 Schema 变更的效果。 -
migrate --fake
(Django): Django 迁移命令的一个选项,用于将迁移标记为已应用(更新迁移记录表),但不实际执行 SQL 操作。 -
alembic stamp
(Alembic): Alembic 命令,用于将数据库的迁移版本记录设置为指定的版本,不实际执行迁移。 -
初始化 (Init - 迁移工具): 设置迁移工具所需的初始配置文件和目录结构。
-
生成迁移脚本 (Generate Migration): 由迁移工具根据模型变化或手动定义创建包含 Schema 变更操作的脚本文件。
-
自动生成 (Autogenerate - 迁移工具): 迁移工具自动检测代码模型与数据库状态差异并生成迁移脚本的功能。
-
应用迁移 (Apply Migration / Upgrade): 使用迁移工具将待处理的迁移脚本按版本顺序应用到目标数据库。
-
版本控制 (Version Control - 迁移脚本): 将迁移脚本文件纳入代码版本控制系统(如 Git)进行管理。
-
回滚迁移 (Rollback Migration / Downgrade): 使用迁移工具撤销已应用的 Schema 变更,恢复到之前的数据库结构版本(需要脚本支持回滚逻辑)。
-
upgrade()
(Alembic): Alembic 迁移脚本中定义应用变更逻辑的函数。 -
downgrade()
(Alembic): Alembic 迁移脚本中定义撤销变更(回滚)逻辑的函数。 -
迁移记录表 (Migration History Table): 迁移工具在目标数据库中创建并维护的一个特殊表,用于记录哪些版本的迁移脚本已经被应用。
-
alembic init
: Alembic 初始化命令。 -
alembic revision
: Alembic 生成新迁移脚本的命令。 -
alembic upgrade
: Alembic 应用迁移的命令。 -
alembic downgrade
: Alembic 回滚迁移的命令。 -
alembic current
: Alembic 查看当前数据库版本的命令。 -
alembic history
: Alembic 查看迁移历史的命令。 -
alembic stamp
: Alembic 手动标记数据库迁移版本的命令(不执行操作)。 -
manage.py makemigrations
(Django): Django 生成新迁移脚本的命令。 -
manage.py migrate
(Django): Django 应用迁移的命令(也用于回滚)。 -
manage.py showmigrations
(Django): Django 查看迁移状态的命令。 -
--fake
(Django migrate option): Django 迁移命令选项,用于伪应用迁移(只更新记录,不执行 SQL)。 -
数据库连接池 (Database Connection Pool): 维护一定数量的数据库连接,供应用程序重复使用,以提高数据库访问性能和资源利用率的技术。
-
HikariCP: 一个高性能的 Java JDBC 连接池库。
-
JDBC (Java Database Connectivity): Java 语言访问关系数据库的标准 API。
-
minimumIdle
(连接池参数): 连接池中保持空闲连接的最小数量。 -
maximumPoolSize
(连接池参数): 连接池允许存在的总连接数(活动+空闲)的最大上限。 -
idleTimeout
(连接池参数): 连接在池中保持空闲状态的最长时间。 -
connectionTimeout
(连接池参数): 应用程序等待从池中获取连接的最长时间。 -
connectionTestQuery
(连接池参数): 用于验证连接有效性的 SQL 查询。 -
validationTimeout
(连接池参数): 用于验证连接有效性的超时时间(通常调用 JDBCisValid()
)。 -
maxLifetime
(连接池参数): 池中连接的最长存活时间。 -
压力测试 (Stress Testing): 在超过正常工作负载的条件下测试系统,以评估其在极端条件下的稳定性、可靠性和可用性。
-
负载 (Load): 指系统在特定时间段内承受的工作量,例如每秒处理的请求数、并发用户数、数据吞吐量等。
-
调优 (Tuning): 根据系统的运行情况和性能指标,调整配置参数或代码,以优化系统性能和资源利用率的过程。
-
HikariCP: (再次提及) 一个高性能的 Java JDBC 连接池库,报告用它作为配置示例。
-
Spring Boot: 一个流行的 Java 框架,用于快速构建独立的、生产级的 Spring 应用程序。报告提供了在 Spring Boot 中配置 HikariCP 的示例。
-
并发 (Concurrency): 在同一时间段内处理多个任务或请求的能力。
-
吞吐量 (Throughput): 单位时间内系统能处理的事务或请求数量。
-
响应时间 (Response Time): 系统处理一个请求所需的总时间,从发出请求到接收到响应。
-
P95, P99 (Percentile): 统计指标,表示有 95% 或 99% 的观测值低于某个值。常用于衡量延迟的分布情况。
-
activeConnections
(连接池指标): 连接池中当前正在使用的连接数量。 -
idleConnections
(连接池指标): 连接池中当前空闲的连接数量。 -
threadsAwaitingConnection
(连接池指标): 当前有多少线程正在等待从连接池获取连接。 -
totalConnections
(连接池指标): 连接池中总的连接数量(活动+空闲)。 -
JMX (Java Management Extensions): Java 平台提供的一种管理和监控应用程序、设备、服务等的框架。HikariCP 可以通过 JMX 暴露其指标。
-
Spring Boot Actuator: Spring Boot 的一个模块,提供生产级的特性,如监控、健康检查、指标暴露等。
-
application.properties
,application.yml
(Spring Boot): Spring Boot 应用的配置文件。 -
Prepared Statement 缓存: 数据库驱动或连接池的一项功能,缓存预编译的 SQL 语句,减少数据库的解析开销。
-
连接泄露 (Connection Leak): 应用程序获取了连接但没有正确归还到连接池,导致连接池中的可用连接越来越少。
-
查询优化 (Query Optimization): 改进数据库查询语句或 Schema 设计,以减少查询执行时间和资源消耗的过程。
-
执行计划 (Execution Plan): 数据库管理系统为执行一个 SQL 查询而生成的操作步骤和策略的序列。
-
EXPLAIN
(SQL 命令): 用于显示数据库查询的执行计划。 -
EXPLAIN ANALYZE
(PostgreSQL 命令): 用于执行查询并显示实际的执行计划和统计信息。 -
全表扫描 (Full Table Scan / Sequential Scan): 数据库不得不读取表中的每一行来查找符合条件的记录,而不是利用索引。
-
JOIN 算法: 数据库在执行 JOIN 操作时使用的不同算法,如 Nested Loop, Hash Join, Merge Join。
-
选择性过滤 (Selective Filtering): 在查询中尽早应用过滤条件,以减少参与后续操作(如 JOIN)的数据量。
-
批量操作 (Batch Operation): 将多个数据库操作组合成一个单一的请求发送给数据库,以减少通信开销和事务开销。
-
全文搜索 (Full-Text Search): 在大量文本数据中查找包含特定词语或短语的文档,并通常根据相关性对结果进行排序。
-
PostgreSQL FTS (Full-Text Search): PostgreSQL 内建的全文搜索功能。
-
tsvector
,tsquery
(PostgreSQL FTS): PostgreSQL 全文搜索中用于表示文档和查询的特殊数据类型。 -
地理空间查询 (Geospatial Query): 对具有地理位置信息的数据执行的空间搜索和分析。
-
PostGIS: PostgreSQL 的一个扩展,提供地理空间数据类型、函数和索引支持。
-
空间索引 (Spatial Index): 用于加速地理空间数据查询的索引类型(如 PostGIS 中的 GiST 索引)。
-
B-Tree 索引: (再次提及,强调其通用性)
-
覆盖索引 (Covering Index): (再次提及,强调其性能优势)
-
函数索引 (Functional Index): (再次提及)
-
部分索引 (Partial Index): (再次提及)
-
Hash 索引: (再次提及,强调其限制)
-
GIN/GiST 索引: (再次提及,强调其对复杂数据类型的支持)
-
物化视图 (Materialized View): (再次提及,强调其缓存查询结果的功能)
-
分区表 (Partitioning): (再次提及,强调其处理大表的能力)
-
分区裁剪 (Partition Pruning): 数据库优化器在查询分区表时,根据查询条件只扫描包含相关数据的分区,而不是所有分区。*
-
API (Application Programming Interface): 应用程序编程接口。定义了不同软件组件如何相互交互的一组规则和规范。
-
RESTful API: 遵循 REST (Representational State Transfer) 架构风格设计的 API,通常基于 HTTP 协议,强调资源和标准的 HTTP 方法。
-
gRPC: 一种高性能、开源的 RPC (Remote Procedure Call) 框架,使用 Protocol Buffers 作为 IDL,基于 HTTP/2。
-
RPC (Remote Procedure Call): 远程过程调用。一种计算机通信协议,允许程序在另一台计算机上执行函数或过程,而程序员无需明确编写远程交互的代码。
-
REST (Representational State Transfer): 一种分布式系统的架构风格,由 Roy Fielding 提出。
-
RESTful API: 遵循 REST 原则设计的 API。
-
资源 (Resource - REST): RESTful API 中的核心概念,代表可以通过 API 访问或操作的数据或功能。
-
HTTP 方法 (HTTP Method): HTTP 协议中用于对资源执行操作的标准动词,如 GET, POST, PUT, DELETE, PATCH。
-
安全方法 (Safe Method - HTTP): 不会改变服务器状态的 HTTP 方法(如 GET, HEAD, OPTIONS)。
-
幂等方法 (Idempotent Method - HTTP): 多次执行相同请求,对服务器状态造成的最终影响与执行一次相同的方法的效果是一样的(如 GET, PUT, DELETE)。
-
URL (Uniform Resource Locator): 统一资源定位符,用于标识和定位网络上的资源。
-
URL 路径版本控制: 将 API 版本号包含在 URL 路径中的版本控制策略(如
/v1/users
)。 -
OpenAPI Specification (OAS): 一个语言无关的、用于描述 RESTful API 的标准格式(通常用 YAML 或 JSON 编写),前身为 Swagger Specification。
-
Swagger UI: 一个工具,可以根据 OAS 文件自动生成交互式的 API 文档页面。
-
JSON Schema: 一种用于描述 JSON 数据结构的规范。OAS 使用 JSON Schema 的子集来定义请求/响应体格式。
-
Schema 验证 (Schema Validation): 根据预定义的数据结构规则(Schema)检查数据的有效性。
-
API 版本控制 (API Versioning): 管理和区分 API 不同版本的策略和实践,以处理 API 变化并维护向后兼容性。
-
弃用策略 (Deprecation Policy): 软件中关于何时停止支持旧功能或 API 版本的计划和规则。
-
身份认证 (Authentication): 验证用户或客户端身份的过程(你是谁?)。
-
授权 (Authorization): 确定用户或客户端是否有权执行特定操作或访问特定资源的过程(你能做什么?)。
-
JWT (JSON Web Token): (再次提及) 一种用于安全传输信息的标准,常用于身份认证,令牌是自包含的。
-
声明 (Claim - JWT): JWT Payload 中关于实体(通常是用户)或其他数据的陈述。
-
sub
,exp
,iss
(JWT Claims): JWT 中的标准声明字段。 -
Signature (签名 - JWT): 使用加密算法和密钥对 JWT Header 和 Payload 进行计算得到的值,用于验证令牌的完整性和来源。
-
HS256, RS256 (JWT 签名算法): 常见的 JWT 签名算法。
-
Authorization: Bearer
Header: HTTP 请求头中用于传递 Bearer Token(如 JWT)的标准方式。 -
无状态 (Stateless - JWT): 指服务器在处理请求时不需要存储 JWT 相关信息(如 Session 状态)。
-
刷新令牌 (Refresh Token): 一种长期有效的令牌,用于在 Access Token 过期后获取新的 Access Token。
-
黑名单 (Blacklist - JWT): 一种实现 JWT 撤销的策略,服务器维护一个已吊销的 JWT 列表。
-
OAuth 2.0: (再次提及) 一个授权框架。
-
OpenID Connect (OIDC): 基于 OAuth 2.0 的身份认证层,用于验证用户身份并获取用户的基本信息。
-
RBAC (Role-Based Access Control): 基于角色的访问控制模型,通过角色分配权限给用户。
-
角色 (Role - RBAC): 一组权限的集合。
-
权限 (Permission - RBAC): 执行某个特定操作或访问某个特定资源的权利。
-
ABAC (Attribute-Based Access Control): 基于属性的访问控制模型,根据用户、资源、操作、环境等属性决定权限。
-
中间件 (Middleware): 在应用程序处理请求的管道中,位于请求到达最终处理逻辑之前和之后执行的代码。
-
装饰器 (Decorator / Annotation): (再次提及) 用于在代码中标记元数据或修改行为。
-
API 网关 (API Gateway): 作为微服务或后端服务的统一入口,处理请求路由、认证、授权、限流等横切关注点。
-
依赖注入 (Dependency Injection - DI): 一种设计模式,对象的依赖关系由外部实体(容器或框架)提供,而不是由对象自己创建。
-
耦合 (Coupling): 软件模块之间相互依赖的程度。低耦合是期望的设计目标。
-
模拟 (Mock - 测试): 在单元测试中,用一个行为受控的假对象来替代真实的依赖对象。
-
序列化器 (Serializer): 在 Web 开发(特别是 API)中,负责将应用程序内部的数据对象转换为可以通过网络传输的格式(如 JSON),或者反过来将接收到的数据转换为内部对象的组件。
-
Casbin: (再次提及) 一个开源的访问控制库,支持多种访问控制模型。
-
ACL (Access Control List): 访问控制列表。一种简单的访问控制模型,直接定义用户对资源的权限。
-
模型 (Model - Casbin): 在 Casbin 中,用于定义访问控制模型(如 RBAC, ABAC)结构的配置文件。
-
策略 (Policy - Casbin): 在 Casbin 中,定义具体访问控制规则(如哪个用户/角色对哪个资源有什么权限)的配置文件或数据库记录。
-
enforce
(Casbin): Casbin 提供的核心函数,用于根据模型和策略判断一个访问请求是否被允许。 -
自包含 (Self-contained - JWT): 指 JWT 令牌本身包含了验证其有效性所需的大部分信息(声明和签名),服务器无需额外查询数据库或 Session 来验证令牌的基本有效性。
-
无状态 (Stateless - JWT): (再次提及,强调其与撤销的关系)
-
会话 (Session): 服务器为跟踪用户状态而创建和维护的信息。传统 Web 应用常用 Session,需要服务器端存储。JWT 允许实现无状态认证,服务器无需存储 Session。
-
错误处理机制 (Error Handling Mechanism): 系统中用于检测、报告和处理错误的策略和代码。
-
统一错误响应格式 (Uniform Error Response Format): API 返回错误时遵循的标准化数据结构(通常是 JSON),包含错误代码、消息、详情等字段。
-
内部错误码 (Internal Error Code): 应用程序内部定义的、用于唯一标识特定错误类型的代码。
-
验证错误 (Validation Error): 由于客户端提交的数据不符合预定义规则(如格式错误、缺少必填项)而发生的错误。
-
请求 ID (Request ID): 分配给每个进入系统的请求的唯一标识符,用于追踪和关联日志。
-
RFC 7807 (Problem Details for HTTP APIs): 一个 IETF 标准,定义了一种通用的、机器可读的 HTTP API 错误响应格式。
-
HTTP 状态码 (HTTP Status Code): (再次提及) HTTP 响应中用于表示请求结果状态的三位数字代码。
-
全局异常处理 (Global Exception Handling): 在应用程序框架层面设置的、用于捕获和处理未在业务逻辑中显式处理的异常的机制。
-
@ControllerAdvice
(Spring): Spring MVC/WebFlux 中用于定义全局控制器增强(包括异常处理)的注解。 -
@ExceptionHandler
(Spring): Spring 中用于标记处理特定类型异常的方法的注解,通常与@ControllerAdvice
配合使用。 -
gRPC (gRPC Remote Procedure Calls): (再次提及) 高性能 RPC 框架。
-
RPC (Remote Procedure Call): (再次提及) 允许程序像调用本地函数一样调用远程服务器上的函数。
-
HTTP/2: HTTP 协议的第二个主要版本,提供了多路复用、头部压缩、服务器推送等特性,相比 HTTP/1.1 性能更好,是 gRPC 的传输基础。
-
Protocol Buffers (Protobuf): Google 开发的一种语言无关、平台无关、可扩展的序列化数据结构的机制,常用于通信协议、数据存储等。是 gRPC 的默认 IDL 和序列化格式。
-
IDL (Interface Definition Language): 接口定义语言。用于描述软件组件接口的一种规范语言,使得不同语言编写的组件可以相互调用。
.proto
文件就是 gRPC 的 IDL。 -
.proto
文件: 使用 Protocol Buffers 语法编写的文本文件,用于定义服务和消息结构。 -
Service (gRPC/Protobuf): 在
.proto
文件中定义的一组 RPC 方法。 -
Message (gRPC/Protobuf): 在
.proto
文件中定义的数据结构,用于 RPC 的请求和响应。 -
字段编号 (Field Number - Protobuf): 在 Protobuf 消息定义中,分配给每个字段的唯一数字标识符,用于二进制序列化。
-
repeated
(Protobuf): 用于定义数组或列表类型的字段。 -
序列化 (Serialization): 将数据结构或对象状态转换为可以存储或传输的格式(如二进制流、JSON、XML)的过程。
-
protoc
(Protobuf Compiler): Google 提供的用于编译.proto
文件并生成对应语言代码的命令行工具。 -
Unary RPC (一元 RPC - gRPC): 客户端发送单个请求,服务器返回单个响应的通信模式。
-
Server Streaming RPC (服务器流式 RPC - gRPC): 客户端发送单个请求,服务器返回消息流的通信模式。
-
Client Streaming RPC (客户端流式 RPC - gRPC): 客户端发送消息流,服务器返回单个响应的通信模式。
-
Bidirectional Streaming RPC (双向流式 RPC - gRPC): 客户端和服务器都可以独立异步地发送消息流的通信模式。
-
流 (Stream - gRPC): 在 gRPC 中,指可以在一段时间内发送或接收的一系列消息。
-
心跳机制 (Heartbeat Mechanism): 在网络通信中,用于检测连接是否仍然有效的机制,通常通过定期发送小的探测消息实现。
-
Keepalive (gRPC): gRPC 基于 HTTP/2 PING 帧提供的内置连接保持和探测机制。
-
TLS (Transport Layer Security): 传输层安全性协议,用于在网络通信中提供加密、身份认证和数据完整性。是 HTTPS 和安全 gRPC 的基础。
-
mTLS (Mutual TLS): 双向 TLS 认证,即客户端和服务器双方都验证对方的证书以确认身份。
-
CA 证书 (Certificate Authority Certificate): 由受信任的证书颁发机构签发的证书,用于验证其他证书(如服务器证书、客户端证书)的真实性。
-
元数据 (Metadata - gRPC): 在 gRPC 调用中,与请求/响应消息主体分开传输的键值对信息,常用于传递认证令牌、追踪 ID、自定义 Header 等。
-
拦截器 (Interceptor - gRPC): gRPC 提供的一种机制,允许在 RPC 调用处理流程中插入自定义逻辑,用于实现日志记录、认证、授权、度量等横切关注点。
-
上下文 (Context - gRPC): 在 gRPC 调用处理过程中,用于携带请求范围信息(如元数据、截止时间、取消信号、认证信息)的对象。
-
横切关注点 (Cross-cutting Concern): 在软件系统中,影响多个模块的功能点,如日志、安全、事务管理。拦截器或 AOP 是处理这些关注点的常用技术。
-
Unauthenticated
(gRPC 状态码): 表示请求缺少或具有无效的身份认证凭据。 -
PermissionDenied
(gRPC 状态码): 表示调用者(已认证)没有执行所请求操作的权限。 -
gRPC 状态码 (gRPC Status Code): gRPC 定义的一组用于表示 RPC 调用结果的整数代码(如
OK
,NOT_FOUND
,INTERNAL
),定义在google.rpc.Code
。 -
错误详情 (Error Details - gRPC): 在 gRPC 错误响应中,通过
google.rpc.Status
的details
字段传递的、包含附加错误信息的结构化数据(Protobuf 消息)。 -
google.rpc.Status
(Protobuf Message): gRPC 中用于表示详细错误信息的标准 Protobuf 消息类型,包含code
,message
,details
字段。 -
google.protobuf.Any
(Protobuf Message): 一种特殊的 Protobuf 消息类型,可以包含任意其他 Protobuf 消息以及该消息的类型标识符。常用于google.rpc.Status
的details
字段。 -
BadRequest
(gRPC Error Detail): Google 定义的一种标准错误详情消息类型,用于提供关于无效请求参数的详细信息。 -
控制反转 (Inversion of Control - IoC): 一种设计原则,将对象创建和依赖管理的控制权从应用程序代码转移给框架或容器。
-
依赖注入 (Dependency Injection - DI): 实现 IoC 的一种常见模式,通过外部容器将依赖对象传递(注入)给需要它们的对象。
-
IoC 容器 (IoC Container): 实现了 IoC 和 DI 机制的框架组件(如 Spring IoC 容器)。
-
Bean (Spring): 被 Spring IoC 容器实例化、组装和管理的对象。
-
Spring Boot: (再次提及) 用于快速构建 Spring 应用程序的框架,内嵌服务器,简化配置。
-
gRPC Starter (Spring Boot): Spring Boot 的扩展,用于简化 gRPC 服务的集成和配置。
-
托管 (Hosting): 运行和管理 Web 服务或应用程序,使其能够接收请求并对外提供服务的过程。
-
自托管 (Self-hosting): 用户自己负责提供服务器和运行环境来托管服务。
-
云托管 (Cloud Hosting): 利用云服务提供商的基础设施或平台来托管服务。
-
内嵌服务器 (Embedded Server): 一些框架(如 Spring Boot)可以将 Web 服务器(如 Tomcat)作为库包含在应用程序中,使得应用程序可以直接运行而无需单独部署到外部服务器。
-
紧耦合 (Tight Coupling): 软件模块之间依赖性过高,一个模块的修改可能需要修改其他多个模块。
-
松耦合 (Loose Coupling): 软件模块之间依赖性较低,一个模块的修改对其他模块影响较小。是期望的设计目标。
-
面向接口编程 (Programming to Interface): 一种编程原则,强调依赖于抽象接口而不是具体的实现类,以提高灵活性和可维护性。
-
单元测试 (Unit Testing): 对软件中最小的可测试单元(通常是函数或方法)进行验证的测试。
-
集成测试 (Integration Testing): 测试多个模块或组件协同工作是否正常的测试。
-
模拟 (Mock - 测试): (再次提及)
-
单例 (Singleton): 一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。IoC 容器可以管理对象的单例生命周期。
-
Well-Known Types (Protobuf): Protocol Buffers 提供的一组预定义的、常用的消息类型,如
Timestamp
,Duration
,Empty
,Any
。 -
类型 URL (Type URL - Protobuf Any):
google.protobuf.Any
消息中用于标识被包装消息类型的字符串。 -
解包 (Unpack - Protobuf Any): 从
google.protobuf.Any
消息中提取并还原出原始 Protobuf 消息对象的过程。 -
精确计算库 (Decimal Arithmetic Library):
- 定义: 提供十进制浮点数算术能力的软件库,用于避免二进制浮点数带来的舍入误差,确保对十进制小数的计算结果完全精确。
- 典型应用场景: 金融计算、货币处理、会计系统、税务计算等对数值精度要求极高的领域。
- 与已讨论概念的联系: 它是实现“核心业务逻辑”中数值计算准确性的一种工具。
- 代表库: Python
decimal
, Javajava.math.BigDecimal
。
-
浮点数精度问题 (Floating-point Precision Issues):
- 定义: 由于计算机内部使用二进制浮点数表示法,导致某些十进制小数无法被精确表示,从而在计算过程中产生微小舍入误差的现象。
- 影响: 在需要高精度计算(尤其是累积计算)的场景下,可能导致结果与预期不符。
- 与已讨论概念的联系: 是“精确计算库”试图解决的核心问题。
-
二进制浮点数 (Binary Floating-point Number): 计算机中常用的表示实数(带小数点的数)的方法,基于二进制表示。如 IEEE 754 标准定义的
float
和double
类型。 -
十进制浮点数算术 (Decimal Floating-point Arithmetic): 直接基于十进制表示法进行浮点数运算的方法,可以精确表示和计算十进制小数。
-
舍入误差 (Rounding Error): 由于数值表示的有限精度,导致计算结果与真实值之间产生的微小差异。
-
精度 (Precision - 数值计算): 指数值表示的有效数字位数,或小数点后保留的位数。
-
舍入模式 (Rounding Mode): 在进行数值近似(舍入)时采用的规则,如四舍五入、向上取整、向下取整、向零取整等。
-
日期与时间处理库 (Date/Time Library):
- 定义: 提供用于表示、操作、格式化和解析日期及时间数据的软件库。
- 典型应用场景: 记录事件时间戳、计算时间间隔、处理时区转换、任务调度、有效期管理等。
- 与已讨论概念的联系: 是实现“核心业务逻辑”中与时间相关的规则和计算的基础。
- 代表库: Python
datetime
(及zoneinfo
), Javajava.time
。
-
时间戳 (Timestamp): 表示某个特定时间点的值,通常是从一个固定的参考点(如 Unix Epoch: 1970-01-01T00:00:00Z)开始计算的秒数或毫秒数。
-
时区 (Time Zone): 地球上使用同一个标准时间的区域。由于地球自转和人为划分,不同时区的时间可能不同。
-
UTC (Coordinated Universal Time): 协调世界时。国际上作为时间基准的标准时间,不受夏令时影响。
-
夏令时 (Daylight Saving Time - DST): 在夏季月份将时钟拨快一小时的做法,以节约能源。这使得时区处理更加复杂。
-
日期时间格式化 (Date/Time Formatting): 将日期时间对象转换为特定格式的字符串(如 “2025-05-08 10:30:00”)。
-
日期时间解析 (Date/Time Parsing): 将特定格式的字符串转换为日期时间对象。
-
时间算术 (Time Arithmetic): 对日期时间进行加减运算(如计算几天后、几小时前)。
-
date
(Pythondatetime
): 表示日期的类。 -
time
(Pythondatetime
): 表示一天内时间的类。 -
datetime
(Pythondatetime
): 表示日期和时间的类。 -
timedelta
(Pythondatetime
): 表示时间间隔的类。 -
zoneinfo
(Pythondatetime
): Python 3.9+ 提供的处理 IANA 时区数据库的模块。 -
java.time
(Java): Java 8+ 引入的现代日期时间 API 包。 -
LocalDate
,LocalTime
,LocalDateTime
(Javajava.time
): 表示本地日期、时间、日期时间的不可变类(不含时区)。 -
ZonedDateTime
(Javajava.time
): 表示带时区的日期时间的不可变类。 -
Instant
(Javajava.time
): 表示时间线上的一个精确时刻点(UTC)的不可变类。 -
Duration
,Period
(Javajava.time
): 表示时间量或日期量的不可变类。 -
ZoneId
(Javajava.time
): 表示时区标识符的类。 -
DateTimeFormatter
(Javajava.time
): 用于格式化和解析日期时间对象的类。 -
不可变性 (Immutability): 对象在创建后其状态不能被修改的特性。
java.time
中的核心类大多是不可变的。 -
领域特定库 (Domain-Specific Library):
- 定义: 专门为解决某一特定行业或专业领域(如金融、科学计算、地理信息)的计算或数据处理问题而设计的软件库。
- 典型应用场景: 需要专业领域知识和复杂算法支持的应用程序。
- 与已讨论概念的联系: 是实现“核心业务逻辑”中专业化功能的重要工具,属于第三方依赖。
- 代表库:
QuantLib
,ta-lib
(金融);NumPy
,SciPy
(科学计算);GeoPandas
,Shapely
(地理信息);Pandas
,Apache Spark
(数据分析)。
-
QuantLib
: 一个开源的、跨平台的 C++ 库,用于量化金融,提供 Python 等语言接口。 -
ta-lib
(Technical Analysis Library): 一个广泛用于金融市场技术分析的库,提供各种技术指标计算。 -
NumPy
(Numerical Python): Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 -
SciPy
(Scientific Python): 一个基于 Python 的开源生态系统,用于数学、科学和工程。它构建在 NumPy 数组对象之上。 -
GeoPandas
: 一个 Python 开源项目,旨在使地理空间数据的使用更容易。它扩展了 Pandas 的数据类型,允许对几何类型进行空间操作。 -
Shapely
: 一个基于 GEOS 库的 Python 包,用于操作和分析平面几何对象。 -
Turf.js
: 一个用于地理空间分析的 JavaScript 库。 -
Pandas
: 一个提供高性能,易于使用的数据结构和数据分析工具的 Python 库。 -
Apache Spark
: 一个用于大规模数据处理的快速通用集群计算系统。 -
许可协议 (Software License): 规定软件使用、修改和分发权限的法律文件。
-
算法应用与集成 (Algorithm Application and Integration):
- 定义: 将特定的算法(如 NLP、推荐、图像处理、机器学习模型)嵌入到应用程序中,以实现更高级的功能和智能化的过程。
- 与已讨论概念的联系: 是“核心业务逻辑”的一部分,用于实现应用的核心价值。
-
文本处理 (Text Processing): 对文本数据进行操作和分析的技术,是 NLP 的基础。
-
NLP (Natural Language Processing - 自然语言处理):
- 定义: 人工智能和语言学领域的分支,致力于使计算机能够理解、解释、生成和响应人类语言。
- 典型应用场景: 机器翻译、情感分析、问答系统、文本摘要、语音识别、聊天机器人。
- 与已讨论概念的联系: 本节讨论的文本相似度计算、分词、词性标注、命名实体识别都属于 NLP 的范畴。
-
NLTK (Natural Language Toolkit): 一个用于 Python 的 NLP 库,功能全面,包含大量算法和语料库。
-
SpaCy: 一个现代的、高性能的 Python NLP 库,注重生产环境应用,提供预训练模型。
-
文本相似度计算 (Text Similarity Calculation): 衡量两段文本在语义或字面上相似程度的方法。
-
编辑距离 (Edit Distance): 如 Levenshtein 距离,衡量两个字符串之间差异的度量,定义为将一个字符串转换为另一个所需的最少单字符编辑次数。
-
词袋模型 (Bag-of-Words - BoW): 一种简化文本表示的方法,将文本视为词的无序集合,只关注词的出现频率,忽略语法和词序。
-
TF-IDF (Term Frequency-Inverse Document Frequency): 一种用于信息检索与文本挖掘的常用加权技术,用于评估一个词对一个文件集或一个语料库中的其中一份文件的重要程度。
-
余弦相似度 (Cosine Similarity): 衡量两个非零向量之间角度的余弦值,常用于计算文本向量之间的相似度。
-
词嵌入 (Word Embedding): 将词语映射到低维稠密向量空间的技术,使得语义相近的词在向量空间中也相近。代表:Word2Vec, GloVe, FastText。
-
句嵌入 (Sentence Embedding): 将整个句子或段落映射到固定长度的向量表示的技术,用于捕捉句子级别的语义。代表:Sentence Transformers (基于 BERT 等)。
-
预训练模型 (Pre-trained Model - NLP/ML): 在大规模数据集上预先训练好的模型,可以直接用于特定任务(通过微调或直接使用其特征提取能力)。
-
分词 (Tokenization): 将文本序列(句子、段落)切分成更小的单元(词、子词、字符)的过程。
-
词性标注 (Part-of-Speech Tagging - POS Tagging): 为文本中的每个词分配其语法类别(如名词、动词、形容词)的过程。
-
命名实体识别 (Named Entity Recognition - NER): 从文本中识别并分类命名实体(如人名、组织名、地名、日期、货币)的过程。
-
Transformer 模型 (NLP): 一种基于自注意力机制的深度学习模型架构,在 NLP 领域取得了巨大成功,是 BERT, GPT 等模型的基础。
-
BERT (Bidirectional Encoder Representations from Transformers): Google 开发的基于 Transformer 的预训练语言模型。**
-
推荐系统 (Recommender System):
- 定义: 一种信息过滤系统,旨在预测用户对物品(如商品、电影、音乐、新闻)的“评分”或“偏好”,并据此向用户推荐他们可能感兴趣的物品。
- 典型应用场景: 电商平台、视频/音乐流媒体服务、新闻门户、社交网络。
- 与已讨论概念的联系: 是“算法应用与集成”的一个重要方向,用于提升用户体验和商业价值。
-
协同过滤 (Collaborative Filtering - CF):
- 定义: 一种推荐算法,基于大量用户的历史行为数据(如评分、购买、浏览)来发现用户之间或物品之间的相似性,并据此进行推荐。
- 子类型: 基于用户的协同过滤 (User-Based CF)、基于物品的协同过滤 (Item-Based CF)。
- 核心思想: 利用群体的智慧。
-
基于用户的协同过滤 (User-Based CF): 找到与目标用户相似的其他用户,推荐这些相似用户喜欢过的物品。
-
基于物品的协同过滤 (Item-Based CF): 找到与目标用户喜欢过的物品相似的其他物品进行推荐。
-
数据稀疏性 (Data Sparsity): 在用户-物品交互矩阵中,大部分条目为空(用户只与少量物品有交互)的现象,是协同过滤面临的主要挑战。
-
冷启动问题 (Cold Start Problem): 推荐系统难以对没有历史行为数据的新用户或没有被交互过的新物品进行有效推荐的问题。
-
基于内容的推荐 (Content-Based Filtering):
- 定义: 一种推荐算法,基于物品本身的内容属性和用户过去喜欢的物品的属性来进行推荐。
- 核心思想: 推荐与用户已知偏好内容相似的物品。
-
用户画像 (User Profile): 对用户兴趣、偏好、属性等信息的结构化描述,常用于基于内容的推荐。
-
过度特化 (Over-specialization): 推荐系统倾向于推荐与用户历史兴趣高度相似的物品,导致推荐结果缺乏多样性和新颖性。
-
惊喜度 (Serendipity): 推荐系统推荐出用户意想不到但又会喜欢的新事物的能力。
-
混合模型 (Hybrid Recommender System): 结合多种推荐算法(如协同过滤和基于内容)的推荐系统。
-
Scikit-learn: (再次提及) Python 机器学习库,可用于实现推荐系统中的某些组件。
-
Surprise (Python Library): 一个专门用于构建和分析推荐系统的 Python scikit (库)。
-
LightFM (Python Library): 一个实现混合推荐模型的 Python 库。
-
矩阵分解 (Matrix Factorization): 一类常用于推荐系统的数学方法(如 SVD, NMF),通过将用户-物品交互矩阵分解为用户和物品的低维隐因子矩阵来预测评分或偏好。
-
隐因子模型 (Latent Factor Model): 试图从观测数据中学习到一些无法直接观察到的、潜在的因素或特征(隐因子),这些隐因子可以解释用户行为或物品特性。**
-
图像处理 (Image Processing):
- 定义: 使用计算机算法对数字图像进行操作和分析的技术,以改善图像质量、提取有用信息或进行模式识别。
- 典型应用场景: 图像增强、图像恢复、特征提取、图像分割、对象检测、医学影像分析。
- 与已讨论概念的联系: 是“算法应用与集成”的一部分,为计算机视觉等高级应用提供基础。
-
OpenCV (Open Source Computer Vision Library):
- 定义: 一个开源的、跨平台的计算机视觉和机器学习软件库,包含大量的图像处理和计算机视觉算法。
- 核心价值: 提供了实现图像处理和计算机视觉任务的强大工具集。
-
像素 (Pixel): 数字图像的最小组成单元,通常包含颜色和亮度信息。
-
颜色空间 (Color Space): 描述颜色的一种数学模型,如 RGB (Red, Green, Blue), HSV (Hue, Saturation, Value), Grayscale (灰度)。
-
图像滤波 (Image Filtering): 通过应用一个“滤波器”(通常是一个小的卷积核)来修改或增强图像像素值的过程,如去噪、锐化、模糊。
-
高斯模糊 (Gaussian Blur): 一种使用高斯函数作为权重的图像平滑滤波器。
-
卷积 (Convolution - 图像处理): 一种数学运算,通过将一个函数(卷积核)滑过另一个函数(图像)并计算点积来实现滤波等效果。
-
特征提取 (Feature Extraction - 图像处理): 从图像中识别和提取有意义的信息或属性(特征)的过程,如边缘、角点、纹理等,用于后续的分析或识别。
-
插值 (Interpolation - 图像处理): 在图像缩放或几何变换时,根据已知像素值估算新像素位置的像素值的过程。
-
机器学习模型集成 (Machine Learning Model Integration):
- 定义: 将预先训练好的机器学习模型嵌入到应用程序或系统中,使其能够对新的输入数据进行预测或决策的过程。
- 与已讨论概念的联系: 是“算法应用与集成”的一个核心部分,用于实现应用的智能化功能。
-
推理 (Inference - ML):
- 定义: 使用已经训练好的机器学习模型对新的、未见过的数据进行预测或决策的过程。与模型的“训练 (Training)”阶段相对应。
- 核心价值: 将模型学到的知识应用于实际问题。
-
Scikit-learn: (再次提及) Python 机器学习库,常用于传统 ML 模型。
-
joblib
,pickle
(Python): Python 中用于序列化和反序列化对象的库,常用于保存和加载 Scikit-learn 模型。 -
TensorFlow Lite (TFLite):
- 定义: Google 开发的用于在移动设备、嵌入式设备和低功耗计算机上运行 TensorFlow 模型的轻量级解决方案。
- 核心价值: 实现 TensorFlow 模型的端侧高效推理。
.tflite
文件: TensorFlow Lite 模型的专用格式。
-
ONNX (Open Neural Network Exchange):
- 定义: 一个开放的机器学习模型格式标准,旨在促进不同深度学习框架之间的模型互操作性。
- 核心价值: 实现模型的跨框架转换和部署。
.onnx
文件: ONNX 模型的标准文件格式。
-
ONNX Runtime:
- 定义: 一个高性能的推理引擎,用于加载和运行 ONNX 格式的模型,支持多种硬件加速。
- 核心价值: 提供与框架无关的高效模型推理能力。
-
TensorFlow Serving: 一个用于在生产环境中部署和提供 TensorFlow 模型服务的系统。
-
TorchServe: 一个用于在生产环境中部署和提供 PyTorch 模型服务的系统。
-
数据预处理 (Data Preprocessing - ML): 在将数据输入机器学习模型之前,对其进行清洗、转换、规范化等处理步骤,以使其符合模型输入要求并提高模型性能。
-
数据归一化 (Normalization - ML): 将数据按比例缩放到特定范围(如 或 [-1, 1])的过程。
-
数据标准化 (Standardization - ML): 将数据转换为均值为0,标准差为1的分布的过程。
-
张量 (Tensor): 多维数组,是深度学习框架(如 TensorFlow, PyTorch)中数据表示的基本单位。
-
结果后处理 (Result Postprocessing - ML): 将机器学习模型的原始输出转换为应用程序或用户更容易理解和使用的格式的过程。
-
量化 (Quantization - ML): 一种模型优化技术,通过降低模型权重和激活值的数值精度(如从 32 位浮点数转换为 8 位整数)来减小模型大小、加快推理速度,通常会带来轻微的精度损失。
-
图优化 (Graph Optimization - ML Inference): 推理引擎对计算图进行的优化,如算子融合、常量折叠等,以提高执行效率。
-
算子融合 (Operator Fusion - ML Inference): 将计算图中的多个连续操作合并成一个单一的、更高效的操作。
-
MLOps (Machine Learning Operations): 一套旨在简化和标准化机器学习模型开发、部署和运维流程的实践和原则,借鉴了 DevOps 的思想。**
-
错误处理与重试机制 (Error Handling and Retry Mechanism):
- 定义: 应用程序中用于检测、响应和(如果可能)从运行时错误或故障中恢复的策略和代码实现。
- 核心价值: 增强系统的稳定性和可靠性,提高容错能力。
- 与已讨论概念的联系: 是实现“核心业务逻辑与算法”健壮性的重要保障。
-
异常 (Exception):
- 定义: 程序执行期间发生的、中断正常指令流程的错误或意外情况。
- 类型: 可分为检查型异常 (Checked Exception - Java特有,编译时强制处理) 和非检查型异常 (Unchecked Exception / Runtime Exception - 运行时才暴露)。
-
try...except
(Python) /try...catch
(Java/C#):- 定义: 编程语言提供的结构化异常处理语法,用于捕获和处理代码块中可能抛出的异常。
-
精细化捕获 (Specific Exception Catching):
- 定义: 在异常处理时,捕获特定类型的异常而不是通用的基类异常,以便进行针对性的处理。
-
堆栈跟踪 (Stack Trace):
- 定义: 当异常发生时,记录下导致异常的函数调用序列(调用栈)的信息,用于帮助开发者定位错误发生的位置和路径。
-
向上抛出异常 (Re-throwing Exception):
- 定义: 在
except
或catch
块中处理完部分逻辑后,再次将捕获到的异常(或一个新的包装过的异常)抛出,让更高层级的调用者继续处理。
- 定义: 在
-
快速失败 (Fail Fast): 一种系统设计原则,主张一旦检测到错误或异常情况,应立即报告并停止进一步处理,而不是尝试继续执行或掩盖问题。
-
防御性编程 (Defensive Programming): 一种编程风格,通过预先检查输入、状态等,并添加错误处理逻辑,来使程序在面对非预期情况时仍能稳定运行或优雅失败。
-
重试机制 (Retry Mechanism):
- 定义: 在操作因暂时性故障失败后,自动尝试重新执行该操作的机制。
- 核心价值: 提高操作的成功率和系统的韧性。
- 与已讨论概念的联系: 是“健壮错误处理”的一部分,用于应对可恢复的异常。
-
暂时性故障 (Transient Fault/Error):
- 定义: 短暂的、非持续性的错误,通常在一段时间后会自行消失或可以通过重试解决。
- 例子: 网络抖动、服务器临时过载、数据库死锁。
-
指数退避 (Exponential Backoff):
- 定义: 一种重试策略,每次重试失败后,等待下一次重试的时间间隔呈指数级增长。
- 核心价值: 给故障系统恢复时间,并减少对故障系统的持续压力。
-
抖动 (Jitter):
- 定义: 在指数退避计算出的等待时间基础上,增加一个小的随机时间量,以避免多个客户端在同一精确时间点同步重试。
- 核心价值: 打散重试请求,防止“惊群效应”。
-
最大重试次数 (Max Retries): 重试机制中允许的最大尝试次数,防止无限重试。
-
可重试异常 (Retryable Exception): 指那些由暂时性问题引起,通过重试有可能成功的异常类型。
-
tenacity
(Python Library): 一个流行的 Python 库,用于方便地实现各种重试逻辑。 -
Polly (.NET Library): .NET 中用于实现弹性策略(包括重试、熔断等)的库。
-
Spring Retry (Java Module): Spring 框架中提供声明式重试功能的模块。
-
惊群效应 (Thundering Herd Problem): 当大量进程或线程因某个事件被同时唤醒,并试图访问同一个共享资源时,可能导致系统性能急剧下降或资源竞争加剧的现象。在重试场景中,指多个客户端同步重试。
-
幂等性 (Idempotence): (再次提及,强调其与重试的关系) 指一个操作执行一次或多次产生的效果是相同的。幂等操作可以安全地重试。
-
熔断器模式 (Circuit Breaker Pattern):
- 定义: 一种软件设计模式,用于在与外部服务或资源交互时,检测故障并在故障持续发生时阻止进一步的调用,以防止级联故障并允许服务恢复。
- 核心价值: 提高分布式系统的韧性和可用性,防止雪崩效应。
- 与已讨论概念的联系: 是“健壮错误处理与重试机制”的一部分,与重试策略互补(重试处理暂时性,熔断处理持续性)。
-
雪崩效应 (Cascading Failure): 在分布式系统中,一个组件的故障导致其他依赖该组件的组件也发生故障,故障像雪崩一样逐级放大,最终可能导致整个系统崩溃的现象。
-
快速失败 (Fast Fail): (再次提及,熔断器打开时的行为)
-
Closed State (熔断器 - 闭合状态): 熔断器的正常工作状态,允许请求通过。
-
Open State (熔断器 - 打开/跳闸状态): 当故障达到阈值时进入此状态,所有请求立即失败(通常执行降级逻辑),不实际调用下游服务。
-
Half-Open State (熔断器 - 半开状态): 在 Open 状态持续一段时间后进入此状态,允许少量探测请求通过以检查下游服务是否恢复。
-
滑动窗口 (Sliding Window - 熔断器): 熔断器用于统计近期调用成功/失败率的时间窗口或计数窗口。
-
失败率阈值 (Failure Rate Threshold): 触发熔断器从 Closed 变为 Open 的失败率上限。
-
慢调用率阈值 (Slow Call Rate Threshold): 触发熔断器从 Closed 变为 Open 的慢调用比例上限。
-
降级逻辑 (Fallback Logic): 当主操作(如调用下游服务)失败或熔断器打开时,执行的备用处理逻辑,旨在提供部分可用性或友好的错误提示。
-
Hystrix (Java Library): Netflix 开发的用于实现熔断器等弹性模式的库(已维护)。
-
Resilience4j (Java Library): Hystrix 的现代替代品,轻量级、函数式风格的 Java 弹性库。
-
Polly (.NET Library): (再次提及)
-
@CircuitBreaker
(Resilience4j 注解): Spring Boot 中用于在方法上声明使用 Resilience4j 熔断器的注解。** -
设计模式 (Design Pattern):
- 定义: 在软件设计中,针对特定问题上下文的、经过反复使用并被证明是有效的、可复用的解决方案。它不是一个可以直接转换成代码的完成设计,而是一个描述问题、解决方案、何时应用该方案以及其后果的模板。
- 核心价值: 提供经验证的解决方案,提高代码质量、可维护性、可扩展性和团队沟通效率。
- 与已讨论概念的联系: 用于更好地组织和实现“核心业务逻辑与算法”。
-
策略模式 (Strategy Pattern):
- 定义: 定义一系列算法,将每个算法封装起来,并使它们可以相互替换。此模式让算法的变化独立于使用算法的客户。
- 类型: 行为型模式。
-
工厂模式 (Factory Pattern):
- 定义: 定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化推迟到子类。
- 类型: 创建型模式。
- 变体: 简单工厂、工厂方法、抽象工厂。
-
观察者模式 (Observer Pattern):
- 定义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
- 类型: 行为型模式。
- 别名: 发布-订阅模式 (Publish-Subscribe Pattern) 与其类似但有细微差别。
-
模板方法模式 (Template Method Pattern):
- 定义: 定义一个操作中的算法骨架,而将一些步骤的实现延迟到子类中。
- 类型: 行为型模式。
-
状态模式 (State Pattern):
- 定义: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
- 类型: 行为型模式。
-
适配器模式 (Adapter Pattern):
- 定义: 将一个类的接口转换成客户希望的另外一个接口。
- 类型: 结构型模式。
-
外观模式 (Facade Pattern):
- 定义: 为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。
- 类型: 结构型模式。
-
开闭原则 (Open-Closed Principle - OCP):
- 定义: 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即在不修改现有代码(或尽量少修改)的前提下,可以增加新的功能。
- 与设计模式的关系: 许多设计模式(如策略模式、工厂方法模式、观察者模式)都是为了帮助实现开闭原则。**
-
用户界面开发 (User Interface Development):
- 定义: 创建和实现用户与软件系统进行交互的图形化界面的过程。
- 核心价值: 提供用户友好的交互方式,传递应用价值。
- 与已讨论概念的联系: 是应用程序的“前端”部分,与后端 API (领域二) 进行交互,其内部逻辑也可能涉及“核心业务逻辑与算法”(领域三) 的部分前端实现。
-
前端状态管理 (Frontend State Management):
- 定义: 在客户端应用程序(尤其是单页应用 SPA)中组织、存储、同步和更新共享状态的机制和实践。
- 核心价值: 解决复杂应用中状态共享和维护的难题,提高代码可维护性和可预测性。
-
Redux Toolkit (RTK): Redux 官方推荐的、用于高效 Redux 开发的工具集,简化了 Redux 的使用。
-
Pinia: Vue 官方推荐的状态管理库,被认为是下一代 Vuex。
-
Props Drilling: 在组件树中,通过 props 将数据从顶层组件逐层传递到深层子组件的过程,可能导致代码冗余和维护困难。状态管理库旨在解决此问题。
-
Store (状态管理): (再次提及) 应用程序全局状态的单一事实来源。
-
State (状态管理): (再次提及) 存储在 Store 中的应用数据。
-
不可变性 (Immutability - 状态管理): (再次提及) 状态更新时不直接修改原对象,而是创建新对象的原则。
-
Immer (JavaScript Library): 一个简化 JavaScript 不可变数据操作的库,Redux Toolkit 内置使用。
-
Action (状态管理): (再次提及) 描述状态变更意图的对象或函数。
-
Reducer (Redux): (再次提及) 接收旧状态和 Action,返回新状态的纯函数。
-
Mutation (Vuex/Pinia): (再次提及) 类似于 Reducer,用于同步修改状态的函数。Pinia 中 Actions 可以直接修改状态,其内部机制类似。
-
纯函数 (Pure Function): 返回结果只由其输入参数决定,并且没有副作用的函数。
-
副作用 (Side Effect): 函数在执行过程中,除了返回计算结果外,还对函数外部的状态产生了可观察的改变(如修改全局变量、操作 DOM、发起网络请求、写入文件等)。
-
Selector (Redux): (再次提及) 从 Store 中派生或计算状态的函数。
-
Getter (Vuex/Pinia): (再次提及) 类似于 Selector,用于从 Store 中派生数据。
-
Memoization (缓存): 一种优化技术,通过缓存函数的计算结果,使得对于相同的输入参数,函数可以直接返回缓存的结果而无需重新计算。Selector/Getter 常使用此技术。
-
reselect
(Redux Library): 一个用于创建可记忆化 (memoized) Selector 的库,常与 Redux 配合使用。** -
Redux Toolkit (RTK): (再次提及)
- 组成部分/特性:
configureStore
,createSlice
,createAsyncThunk
, 内置 Immer, Thunk, Reselect。
- 组成部分/特性:
-
Pinia: (再次提及)
- 核心API:
createPinia
,defineStore
。 - 组成部分:
state
,getters
,actions
。
- 核心API:
-
react-redux
:- 定义: Redux 官方提供的将 Redux 与 React 组件连接的库。
- 核心组件/Hooks:
<Provider>
,useSelector
,useDispatch
。
-
Slice (Redux Toolkit):
- 定义: RTK 中用于组织一块相关状态、Reducers 和 Action Creators 的逻辑单元。
-
Immer: (再次提及) 一个通过“写时复制”和代理机制简化 JavaScript 不可变数据操作的库。
-
Thunk (Redux Middleware):
- 定义: Redux 的一种中间件,允许 Action Creators 返回一个函数而不是一个普通 Action 对象。这个函数可以接收
dispatch
和getState
作为参数,从而可以在其中执行异步操作,并在操作完成后分发同步 Action 来更新状态。 - 核心价值: 在 Redux 中处理异步逻辑的常用方式。
- 定义: Redux 的一种中间件,允许 Action Creators 返回一个函数而不是一个普通 Action 对象。这个函数可以接收
-
configureStore
(RTK): RTK 提供的用于创建和配置 Redux Store 的函数,简化了传统 Redux 的 Store 设置。 -
createSlice
(RTK): RTK 提供的用于创建状态 Slice (包含 Reducers 和自动生成的 Action Creators) 的函数。 -
useSelector
(React-Redux Hook): React Hook,用于从 Redux Store 中提取和订阅状态数据。 -
useDispatch
(React-Redux Hook): React Hook,用于获取 Redux Store 的dispatch
函数,以便分发 Actions。 -
createAsyncThunk
(RTK): RTK 提供的用于创建处理异步逻辑(如 API 调用)的 Thunk Action Creator 的函数。 -
extraReducers
(RTK Slice):createSlice
配置中的一个字段,用于处理不由该 Slice 自身reducers
字段生成的 Action(例如,由createAsyncThunk
生成的 pending/fulfilled/rejected actions,或者其他 Slice 的 actions)。 -
createPinia
(Pinia): Pinia 提供的用于创建 Pinia 根实例的函数。 -
defineStore
(Pinia): Pinia 提供的用于定义一个 Store (包含 state, getters, actions) 的函数。 -
Store ID (Pinia): 定义 Pinia Store 时指定的唯一字符串标识符。
-
SSR (Server-Side Rendering): 服务端渲染。在服务器端将前端组件渲染成 HTML 字符串直接发送给浏览器,可以提高首屏加载速度和 SEO。Pinia 的
state
设计为函数是为了更好地支持 SSR。 -
状态管理库选型对比 (State Management Library Comparison):
- 定义: 对不同的前端状态管理库(如 Redux Toolkit vs. Pinia)从多个维度(API、性能、生态、TS支持等)进行分析和比较,以为技术选型提供依据。
- 核心价值: 帮助团队做出符合项目需求和技术栈的最佳选择。
-
Zustand (React State Management): 一个轻量级、简洁的 React 状态管理库,使用 Hooks API,强调简单性和性能。
-
Jotai / Recoil (React State Management): React 的原子化状态管理库。它们将状态拆分成更小的、独立的“原子 (atom)”,组件只订阅自己关心的原子,从而实现更细粒度的状态管理和渲染优化。
-
原子化状态管理 (Atomic State Management): 一种状态管理范式,将全局状态分解为多个独立的、可组合的细粒度状态单元(原子),组件可以直接订阅和更新这些原子。
-
Vuex: Vue 早期官方的状态管理库,Pinia 是其推荐的替代者。
-
Composition API (Vue): Vue 3 引入的一套新的 API,允许更灵活和可组合地组织组件逻辑,Pinia 的设计很好地利用了 Composition API。**
-
前后端数据交互 (Frontend-Backend Data Interaction):
- 定义: 前端应用程序与后端服务器之间通过 API 进行数据请求和响应的过程。
- 核心价值: 实现数据驱动的动态 Web 应用。
-
HTTP 客户端库 (HTTP Client Library):
- 定义: 用于在客户端(如浏览器或 Node.js)发起 HTTP 请求并处理响应的软件库。
- 代表: Fetch API (浏览器内建), Axios (第三方库)。
-
Fetch API: (再次提及) 浏览器内建的现代 HTTP 请求 API。
-
Axios: (再次提及) 流行的基于 Promise 的 HTTP 客户端库。
-
拦截器 (Interceptor - Axios):
- 定义: Axios 提供的机制,允许在请求发送前或响应处理前全局性地修改配置、添加逻辑或处理错误。
- 类型: 请求拦截器、响应拦截器。
-
axios.create
: Axios 提供的方法,用于创建一个具有自定义配置(如baseURL
,timeout
, 拦截器)的 Axios 实例。 -
baseURL
(Axios 配置): Axios 实例的全局基础 URL,后续请求可以使用相对路径。 -
timeout
(Axios 配置): 请求超时时间(毫秒)。 -
异步操作 (Asynchronous Operation): (再次提及) 不会立即阻塞主线程,而是在后台执行,完成后通过回调或 Promise 通知结果的操作(如网络请求)。
-
加载状态 (Loading State): UI 中用于表示数据正在获取或操作正在进行中的状态。
-
错误状态 (Error State): UI 中用于表示数据获取或操作失败的状态。
-
Spinner (加载指示器): 一种常见的 UI 元素,通过旋转动画表示正在加载。
-
骨架屏 (Skeleton Screen): 一种加载状态的 UI 模式,显示页面的大致轮廓(灰色占位符),以改善用户对加载速度的感知。
-
useEffect
(React Hook): React Hook,用于处理副作用(如数据获取、订阅、手动更改 DOM)。 -
useState
(React Hook): React Hook,用于在函数组件中添加和管理状态。 -
依赖数组 (Dependency Array - React
useEffect
):useEffect
的第二个参数,一个数组,当数组中的值发生变化时,effect 会重新执行。 -
清理函数 (Cleanup Function - React
useEffect
):useEffect
回调函数可以返回一个函数,该函数会在组件卸载前或 effect 重新执行前被调用,用于清理副作用(如取消订阅、清除定时器、取消 API 请求)。 -
AbortController
(Web API): 用于中止一个或多个 Web 请求(如 Fetch 或 Axios 请求)的接口。 -
ref
,reactive
(Vue Composition API): Vue 3 Composition API 中用于创建响应式数据的函数。 -
watch
(Vue Composition API Hook): Vue Hook,用于侦听一个或多个响应式数据源的变化,并在变化时执行回调函数。 -
onMounted
(Vue Composition API Hook): Vue Hook,在组件挂载到 DOM 后执行回调函数。 -
数据获取库 (Data Fetching Library - Frontend):
- 定义: 专门用于简化和增强前端异步数据获取逻辑的库。
- 核心功能: 状态管理、缓存、自动重新获取、后台同步、分页、错误处理等。
- 代表: TanStack Query (原 React Query), SWR。**
-
前端表单处理 (Frontend Form Handling):
- 定义: 在客户端应用程序中管理用户通过表单输入的数据的过程,包括状态捕获、验证、提交和错误处理。
- 核心价值: 实现用户数据输入功能,保证数据质量和用户体验。
-
React Hook Form (RHF):
- 定义: 一个用于 React 的高性能、灵活且易于使用的表单验证库,基于 Hooks API。
- 核心特点: 减少重渲染、非受控组件为主、集成验证 Schema。
-
Formik: 另一个流行的 React 表单库,功能全面,基于受控组件。
-
受控组件 (Controlled Component - React): 表单元素的值由 React 组件的 state 完全控制。
-
非受控组件 (Uncontrolled Component - React): 表单元素的值由 DOM 自身管理,React 通过 ref 在需要时读取。
-
ref
(React): React 中用于获取对 DOM 元素或 React 组件实例的引用的机制。 -
register
(React Hook Form): RHF 的一个核心方法,用于将输入元素注册到表单状态管理和验证系统中。 -
handleSubmit
(React Hook Form): RHF 提供的一个包装函数,在执行自定义的onSubmit
函数之前会自动进行表单验证。 -
formState: { errors }
(React Hook Form): RHFuseForm
Hook 返回的对象的一部分,包含了每个字段的验证错误信息。 -
客户端验证 (Client-Side Validation): 在用户的浏览器端对表单输入数据进行的验证。
-
服务端验证 (Server-Side Validation): 在后端服务器对接收到的数据进行的最终验证。
-
HTML5 内建验证: 浏览器利用 HTML5 表单元素的属性(如
required
,type
,pattern
)进行的自动验证。 -
验证 Schema 库 (Validation Schema Library):
- 定义: 用于声明式地定义数据结构和验证规则的库。
- 代表: Yup, Zod。
-
Yup: 一个流行的 JavaScript Schema 构建和验证库。
-
Zod: 一个 TypeScript 优先的 Schema 声明和验证库,以类型安全著称。
-
Resolver (React Hook Form): RHF 中用于集成外部验证 Schema 库(如 Yup, Zod)的适配器。
-
setError
(React Hook Form): RHF 提供的方法,用于手动为一个或多个字段设置错误状态。 -
用户友好错误提示 (User-Friendly Error Messages): 清晰、即时、位置恰当且对所有用户(包括残障用户)都易于理解的错误反馈。
-
无障碍性 (Accessibility - a11y): 使 Web 内容和应用程序对残障人士可访问和可用的设计和实践。
-
aria-invalid
(ARIA Attribute): WAI-ARIA 属性,用于指示表单元素的值是否无效。 -
aria-describedby
(ARIA Attribute): WAI-ARIA 属性,用于将一个元素(如输入框)与描述它的另一个元素(如错误消息)关联起来。 -
异步验证 (Asynchronous Validation): 需要进行异步操作(如调用后端 API)才能完成的验证逻辑。**
-
UI 组件库 (UI Component Library):
- 定义: (再次提及) 提供预制、可复用 UI 组件的集合。
- 核心价值: 加速开发、保证一致性、提高质量。
- 代表: Ant Design, Material UI, Chakra UI, Element Plus。
-
Ant Design: 一个流行的企业级 UI 设计语言和 React/Vue/Angular 实现库。
-
按需加载 (On-demand Loading / Tree Shaking):
- 定义: (再次提及) 只打包实际使用的代码,减小应用体积。
- 机制: 基于 ES Modules 的静态分析。
-
ES Module (ESM): ECMAScript (JavaScript) 的官方标准模块系统,使用
import
和export
关键字。 -
具名导入 (Named Imports): 从模块中导入特定的、具名的导出成员,如
import { Button } from 'library';
。 -
babel-plugin-import
: 一个 Babel 插件,曾用于辅助某些 UI 库实现按需加载。 -
CSS-in-JS: 一种在 JavaScript 代码中编写 CSS 样式的技术或库(如 Styled Components, Emotion)。
-
主题 (Theme - UI 组件库):
- 定义: (再次提及) 对 UI 组件库全局视觉风格(颜色、字体、间距等)的定义和配置。
-
Theme Provider / ConfigProvider: UI 组件库提供的用于在应用根级别应用自定义主题的组件。
-
CSS Variables (CSS 自定义属性): 用户定义的 CSS 属性,以
--
开头,可以在 CSS 中复用。现代 UI 库常用其进行主题化。 -
Sass/Less: 流行的 CSS 预处理器,扩展了 CSS 的功能(如变量、嵌套、混合等)。
-
样式覆盖 (Style Override): 修改 UI 组件库默认样式的过程。
-
CSS Modules: 一种 CSS 文件规范,其中所有类名和动画名默认都是局部作用域的,通过在构建时生成唯一哈希类名来实现。
-
Scoped CSS (Vue): Vue 单文件组件中
<style scoped>
块内的 CSS 只作用于当前组件的元素。 -
::v-deep
(Vue Scoped CSS - 已不推荐,推荐:deep()
): Vue 中用于在 scoped 样式中穿透到子组件内部元素的选择器。 -
Styled Components / Emotion: (再次提及) 流行的 CSS-in-JS 库。
-
Tailwind CSS: 一个原子化/功能优先的 CSS 框架,通过组合大量预定义的工具类来构建界面。
-
CSS 层叠 (Cascading): CSS 的核心机制之一,决定了当多个样式规则应用于同一个元素时,哪个规则最终生效(基于来源、特异性、顺序)。
-
CSS 特异性 (Specificity): 一个用于计算 CSS 选择器权重的规则,权重越高的选择器定义的样式会覆盖权重较低的。
-
!important
(CSS): 用于强制提升某条 CSS 规则的优先级,应谨慎使用。 -
异步处理 (Asynchronous Processing):
* 定义: 一种计算模型,其中任务的发起和其完成的处理是分离的,允许发起方在等待任务完成时继续执行其他工作,而不是阻塞等待。
* 核心价值: 提高系统响应能力和吞吐量,特别适用于耗时操作或 I/O 密集型任务。
* 与已讨论概念的联系: 是领域五的核心主题,通常依赖消息队列和异步编程模型实现。 -
后台任务 (Background Task):
* 定义: 在用户请求的主处理流程之外异步执行的任务,通常用于处理耗时、可延迟或需要定期执行的操作。
* 典型应用场景: 发送邮件通知、生成报表、数据同步、图像处理、批量计算。
* 与已讨论概念的联系: 是异步处理的具体表现形式,常通过消息队列调度。 -
消息队列 (Message Queue - MQ):
* 定义: 一种中间件服务,允许不同的应用程序或服务通过发送和接收消息来进行异步通信和解耦。它充当生产者和消费者之间的缓冲区。
* 核心价值: 系统解耦、异步通信、削峰填谷、提高可靠性。
* 与已讨论概念的联系: 实现后台任务调度和事件驱动架构的关键基础设施。
* 代表: RabbitMQ, Apache Kafka, Redis Streams。 -
生产者 (Producer - MQ): (再次提及,强调其在 MQ 中的角色) 发送消息到消息队列的组件。
-
消费者 (Consumer - MQ): (再次提及,强调其在 MQ 中的角色) 从消息队列接收并处理消息的组件。
-
Broker (MQ): (再次提及,强调其在 MQ 中的角色) 消息队列服务器。
-
队列 (Queue - MQ): (再次提及,强调其在 MQ 中的角色) 存储消息的缓冲区。
-
消息 (Message - MQ): (再次提及,强调其在 MQ 中的角色) 生产者和消费者之间传递的数据单元。
-
RabbitMQ: 一款流行的开源消息代理软件(实现了 AMQP 协议),以其灵活的路由能力、可靠的消息传递和丰富的特性而闻名。
-
AMQP (Advanced Message Queuing Protocol): 一个开放标准的应用层协议,为面向消息的中间件设计。RabbitMQ 是 AMQP 的一种实现。
-
Exchange (交换机 - RabbitMQ): (再次提及,强调其在 RabbitMQ 中的核心路由作用) 接收生产者消息并根据规则将其路由到一个或多个队列。
-
Binding (绑定 - RabbitMQ): 连接 Exchange 和 Queue 的规则,定义了消息如何从 Exchange 路由到 Queue。
-
Routing Key (路由键 - RabbitMQ): 生产者发送消息时指定的键,Exchange 用它(结合 Binding Key)来决定路由。
-
Apache Kafka: 一个开源的分布式流处理平台,设计用于处理高吞吐量、可容错的实时数据流。
-
Topic (主题 - Kafka): (再次提及,强调其在 Kafka 中的消息分类作用)
-
Partition (分区 - Kafka): (再次提及,强调其作为 Kafka 并行处理和有序性保证的基本单元)
-
Offset (偏移量 - Kafka): (再次提及,强调其在 Kafka 分区中标识消息位置的作用)
-
Consumer Group (消费者组 - Kafka): (再次提及,强调其在 Kafka 中实现消费负载均衡和容错的机制)
-
Zookeeper: 一个开源的分布式协调服务,传统上被 Kafka 用于集群元数据管理和领导者选举(新版本 Kafka 可选 KRaft 模式替代)。
-
KRaft (Kafka Raft Metadata mode): Kafka 较新版本中引入的基于 Raft 协议的元数据管理模式,旨在移除对 Zookeeper 的依赖。
-
Redis Streams: Redis 5.0+ 引入的一种新的数据结构,提供了类似日志的、可持久化的消息流功能,支持消费者组。
-
Celery (Python Task Queue): 一个流行的 Python 分布式任务队列框架,可以配合多种消息代理(如 RabbitMQ, Redis)和结果后端使用,简化了后台任务的创建、调度和管理。
-
Celery Beat (Celery Scheduler): Celery 的一个组件,用于按预定时间表(类似 Cron)触发周期性任务。
-
至少一次传递 (At-least-once Delivery - MQ): 消息队列系统保证消息至少会被成功传递给消费者一次,但可能会发生重复传递。
-
最多一次传递 (At-most-once Delivery - MQ): 消息队列系统保证消息最多只会被传递一次,但可能会发生消息丢失。
-
恰好一次传递 (Exactly-once Delivery - MQ): 消息队列系统保证消息既不会丢失也不会重复,恰好被处理一次。这是最理想但通常也最难实现的语义。
-
流处理 (Stream Processing): 对连续不断的、实时的、可能无限的数据流进行处理和分析的技术。Kafka 是流处理领域的核心组件。
-
消息确认 (Acknowledgement - Ack/Nack - MQ): 消费者在处理完消息后向 Broker 发送的确认信号(成功或失败),用于告知 Broker 该消息可以被安全移除或需要重新处理。
-
持久化 (Persistence - MQ): 确保消息和队列/主题的元数据在 Broker 重启后不会丢失的特性。
-
死信队列 (Dead Letter Queue - DLQ):
* 定义: 用于存储那些因无法被正常消费(如处理失败、TTL过期、队列满)而从源队列中移除的“死信”消息的专门队列。
* 核心价值: 隔离问题消息,防止阻塞主流程,并为后续分析和处理这些问题消息提供机制。 -
TTL (Time-To-Live - 消息/队列): 消息或队列中消息的存活时间。
-
pika
(Python RabbitMQ Client): 一个流行的 Python RabbitMQ 客户端库。 -
kafka-python
(Python Kafka Client): 一个流行的 Python Kafka 客户端库。 -
幂等性 (Idempotence): (再次提及,强调其在后台任务设计中的极端重要性) 一个操作执行一次或多次,其对系统状态产生的最终效果是相同的。
-
唯一 ID (Unique ID - 幂等性): 用于唯一标识一次业务操作尝试的标识符,是实现幂等性检查的关键。
-
雪花算法 (Snowflake Algorithm): 一种分布式全局唯一 ID 生成算法,生成的 ID 是趋势递增的64位整数。
-
状态机 (State Machine): 一种计算模型,描述了一个系统可以处于的有限个状态以及在这些状态之间转换的条件和动作。可用于实现幂等性。
-
可序列化 (Serializable): (再次提及,强调其对任务参数和结果的重要性)
-
结果后端 (Result Backend - Celery): Celery 用于存储任务执行状态和返回结果的后端存储(如 Redis, RabbitMQ RPC, 数据库)。
-
定时调度 (Scheduled Task / Cron Job): (再次提及,强调其后台任务触发方式)
-
事件驱动架构 (Event-Driven Architecture - EDA): 一种软件架构模式,系统中的组件通过异步地产生、检测和响应事件来进行交互。消息队列是 EDA 的核心。
-
可恢复的暂时性错误 (Transient Error - Retry): (再次提及,强调其是重试机制的应用前提)
-
requeue
(RabbitMQ Nack/Reject 参数): 指示 Broker 是否应将拒绝的消息重新放回原队列。 -
延迟交换机 (Delayed Message Exchange - RabbitMQ Plugin): RabbitMQ 的一个插件,允许生产者发送带有延迟属性的消息,消息在指定的延迟时间过后才会被路由到队列。常用于实现延迟任务或延迟重试。
-
有毒消息 (Poison Message): 那些因自身格式错误或触发代码 Bug 而导致消费者反复失败的消息。
-
异步编程模型 (Asynchronous Programming Model):
* 定义: 一种编程范式,允许程序在等待 I/O 操作(如网络请求、文件读写)完成时执行其他任务,而不是阻塞主线程,从而提高并发性能。
* 核心价值: 在单进程内高效处理大量并发 I/O 操作,提升资源利用率。
* 代表: Pythonasyncio
, Node.js (原生支持), Java Project Reactor/Netty。 -
asyncio
(Python): Python 标准库中用于编写单线程并发代码的框架,使用事件循环和协程。 -
async/await
(Python/JavaScript/C#): 用于简化异步代码编写的语法糖,使得异步代码看起来更像同步代码。 -
协程 (Coroutine): (再次提及,强调其作为异步编程的基本执行单元) 一种可以被暂停和恢复执行的计算单元。
-
事件循环 (Event Loop): (再次提及,强调其作为异步程序的核心调度器)
-
awaitable
对象 (Python asyncio): 可以被await
关键字等待的对象,如协程、Task、Future。 -
aiohttp
(Python Library): 一个基于asyncio
的异步 HTTP 客户端/服务器库。 -
asyncio.gather
(Python):asyncio
提供的函数,用于并发运行多个 awaitable 对象并等待它们全部完成。 -
异步上下文管理器 (Asynchronous Context Manager - Python): 实现了
__aenter__
和__aexit__
(异步版本) 方法的对象,用于配合async with
语句管理异步资源。 -
异步迭代器 (Asynchronous Iterator - Python): 实现了
__aiter__
和__anext__
(异步版本) 方法的对象,用于配合async for
语句进行异步迭代。 -
asyncio.Lock
(Python):asyncio
提供的异步互斥锁,用于同步协程对共享资源的访问。 -
asyncio.Semaphore
(Python):asyncio
提供的异步信号量,用于限制并发访问共享资源的协程数量。 -
I/O 密集型 (I/O-Bound): 指程序的主要执行时间花费在等待 I/O 操作(网络、磁盘)完成,而不是 CPU 计算。异步编程主要优化此类任务。
-
CPU 密集型 (CPU-Bound): 指程序的主要执行时间花费在 CPU 计算上。异步编程对此类任务帮助不大,通常需要多进程/多线程。
-
I/O 多路复用 (I/O Multiplexing): (再次提及,强调其作为事件循环底层的核心机制) 操作系统允许单个线程监控多个 I/O 通道状态的技术。
-
非阻塞 I/O (Non-blocking I/O): I/O 操作在无法立即完成时不会阻塞调用线程,而是立即返回一个错误或指示操作正在进行中。
-
第三方服务/API 集成 (Third-Party Service/API Integration):
* 定义: 应用程序调用由外部实体提供的服务或 API 来获取数据或执行功能的过程。
* 核心价值: 快速扩展应用功能,利用外部专业能力。
* 与已讨论概念的联系: 需要处理 API 调用、认证、错误、重试等,与领域二(API 设计)和领域三(错误处理)相关,但视角是作为“调用方”。 -
LLM (Large Language Model - 大型语言模型):
* 定义: 在海量文本数据上训练的、具有强大自然语言理解和生成能力的深度学习模型。
* 代表: OpenAI GPT 系列, Google Gemini, Anthropic Claude。 -
API Key: 用于访问受保护 API 的身份认证凭证,通常是一个字符串。
-
OAuth 2.0: (再次提及,强调其作为第三方 API 认证的常见方式)
-
速率限制 (Rate Limiting): API 提供商为防止滥用和保证服务质量而对单位时间内 API 调用次数或数据量设置的上限。
-
SDK (Software Development Kit - 软件开发工具包):
* 定义: 由服务提供商提供的一组工具、库、文档和代码示例,旨在简化开发者与其服务或平台进行集成的过程。
* 核心价值: 封装底层 API 调用复杂性,提供易用的、特定语言的接口。 -
AWS S3 (Amazon Simple Storage Service): 亚马逊云科技提供的对象存储服务。
-
IAM (Identity and Access Management - AWS): AWS 的身份和访问管理服务,用于安全地控制对 AWS 资源的访问。
-
IAM 角色 (IAM Role - AWS): (再次提及,强调其作为云上应用认证的最佳实践)
-
实例配置文件 (Instance Profile - AWS EC2): 附加到 EC2 实例的 IAM 角色容器。
-
临时安全凭证 (Temporary Security Credentials - AWS): 由 AWS STS 生成的具有较短有效期的 Access Key, Secret Key 和 Session Token,用于授予临时的、有限的访问权限。
-
最小权限原则 (Principle of Least Privilege): (再次提及,强调其在 IAM 和安全配置中的重要性)
-
Secrets Management 工具: 如 HashiCorp Vault, AWS Secrets Manager。
-
AWS CloudTrail: AWS 的审计日志服务,记录 AWS 账户中的 API 调用和操作。
-
对象键 (Object Key - S3): S3 存储桶中对象的唯一标识符(类似文件名或路径)。
-
ETag (S3): S3 对象的实体标签,通常是对象内容的 MD5 哈希,用于校验数据完整性。
-
分页 (Pagination - API): 当 API 返回大量数据时,将数据分割成多个“页”进行返回的机制。
-
SdkException
(AWS SDK): AWS SDK 抛出的所有运行时异常的基类。 -
SdkClientException
(AWS SDK): 表示客户端内部错误(如网络问题、配置错误)的异常。 -
AwsServiceException
(AWS SDK): 表示 AWS 服务端返回错误响应的异常。 -
awsErrorDetails().errorCode()
(AWS SDK): 从AwsServiceException
中获取 AWS 服务定义的具体错误码。 -
requestId()
(AWS SDK): 从AwsServiceException
中获取 AWS 为该请求分配的唯一 ID。 -
isRetryable()
(AWS SDKAwsServiceException
): 指示该服务错误是否可以安全重试。 -
Prompt (LLM): 输入给大型语言模型的文本指令或问题,用于引导其生成期望的输出。
-
Prompt 工程 (Prompt Engineering): 设计和优化 Prompt 以获得 LLM 最佳输出的艺术和科学。
-
Token (LLM): LLM 处理文本的基本单元,可以是单词、子词或字符。API 调用通常按 Token 数量计费。
-
上下文窗口 (Context Window - LLM): LLM 在一次调用中能够处理的最大 Token 总量(输入+输出)。
-
temperature
(LLM 参数): 控制 LLM 输出随机性和创造性的参数。 -
max_tokens
(LLM 参数): 限制 LLM 生成响应的最大 Token 数量。 -
top_p
(LLM 参数): 核采样参数,控制 LLM 从概率最高的词汇子集中选择下一个 Token。 -
openai
(Python Library): 与 OpenAI LLM API 交互的官方 Python 库。 -
Chat Completions API (OpenAI): OpenAI 提供的用于进行基于对话的文本生成的 API。
-
RPM (Requests Per Minute), TPM (Tokens Per Minute): LLM API 常见的速率限制单位。
-
429 Too Many Requests (HTTP Status Code): (再次提及,强调其在速率限制场景下的含义)
-
Retry-After
(HTTP Heade): 当返回 429 或 503 状态码时,服务器可以通过此 Header 告知客户端在多少秒后可以重试。 -
令牌桶 (Token Bucket), 漏桶 (Leaky Bucket): (再次提及,强调其作为客户端限流算法)
-
分布式限流 (Distributed Rate Limiting): 在多个应用实例之间共享和协调速率限制配额的机制。
-
JSON Schema: (再次提及,强调其用于验证 LLM 输出的 JSON 结构)
-
幻觉 (Hallucination - LLM): LLM 生成看似合理但不真实或不准确信息的现象。
-
安全护栏 (Safety Guardrails - LLM): LLM 服务内置的内容安全过滤器,用于防止生成有害或不当内容。
-
文本分块 (Chunking - LLM): 将长文本分割成多个较小块以便 LLM 处理的策略。
-
重叠 (Overlap - Chunking): 在相邻文本块之间设置一部分共享内容以保持上下文连续性。
-
Map-Reduce (长文本处理策略 - LLM): 对每个文本块独立处理,然后聚合结果。
-
Refine (长文本处理策略 - LLM): 迭代处理文本块,逐步精炼和更新结果。
-
Map-Rerank (长文本处理策略 - LLM): 对每个块独立处理并评分,然后根据分数选择最佳结果。
-
滑动窗口 (Sliding Window - LLM): 维护一个固定大小的上下文窗口,在处理文本序列时向前移动。
-
tiktoken
(OpenAI Library): OpenAI 提供的用于对其模型进行文本 Token 化的库。 -
RAG (Retrieval Augmented Generation): 一种结合了信息检索和 LLM 生成的技术,通过从外部知识库检索相关信息来增强 LLM 的回答。
-
向量数据库 (Vector Database): 专门用于存储和高效查询向量嵌入(如文本嵌入、图像嵌入)的数据库。
-
部署 (Deployment): 将应用程序及其依赖项发布到目标运行环境(如生产服务器、云平台)使其可用的过程。
-
运维 (Operations - Ops): 维护和管理应用程序在生产环境中持续稳定运行所需的所有活动。
-
监控 (Monitoring): 持续收集、分析和可视化关于系统性能、健康状况和行为的数据,以便及时发现问题、优化性能和保障可用性。
-
Docker: 一个开源的容器化平台,允许开发者将应用程序及其所有依赖打包成一个轻量级、可移植的容器镜像。
-
容器化 (Containerization): 一种操作系统级别的虚拟化技术,将应用程序及其运行时环境打包在称为容器的独立单元中。
-
Dockerfile: 定义如何构建 Docker 镜像的文本文件。
-
容器镜像 (Container Image): 一个只读的模板,包含了运行容器所需的文件系统和配置。
-
基础镜像 (Base Image - Docker):
Dockerfile
中FROM
指令指定的第一层镜像。 -
Alpine Linux: 一个极轻量级的 Linux 发行版。
-
musl libc
vsglibc
: 两种不同的 C 标准库实现,Alpine 使用musl
,多数主流 Linux 发行版使用glibc
。 -
Slim 镜像 (Docker): 通常指基于主流 Linux 发行版的最小化版本构建的基础镜像。
-
Distroless 镜像 (Google): 只包含应用及其运行时依赖,不含 OS 工具或 shell 的极简镜像。
-
可重复性 (Reproducibility - 构建): 确保每次使用相同的输入(代码、配置)构建软件时,都能得到完全相同的结果。
-
多阶段构建 (Multi-stage Builds - Docker): 在 Dockerfile 中使用多个
FROM
指令分离构建环境和运行环境,以减小最终镜像体积和提高安全性。 -
构建时依赖 (Build-time Dependency): 仅在应用程序编译或构建阶段需要的库或工具。
-
中间构建产物 (Intermediate Artifact): 在构建过程中生成的、但最终运行时不需要的临时文件或输出。
-
Docker 构建缓存 (Docker Build Cache): Docker 利用镜像层缓存加速构建的机制。
-
非 Root 用户运行 (Non-Root User - Docker): 在容器内以权限受限的非 Root 用户身份运行应用程序,以增强安全性。
-
容器逃逸 (Container Escape): 攻击者从容器隔离环境中突破到宿主机或其他容器。
-
最小权限原则 (Principle of Least Privilege): (再次提及,强调其在容器安全和 IAM 中的重要性)
-
USER
(Dockerfile 指令): 用于指定后续指令和容器启动时使用的用户。 -
特权端口 (Privileged Port): 操作系统中通常只有 Root 用户才能监听的端口(通常是 1-1023)。
-
容器镜像漏洞扫描 (Container Image Vulnerability Scanning):
* 定义: 自动检测容器镜像中操作系统包和应用程序依赖库中已知安全漏洞的过程。
* 核心价值: 实现安全左移,降低生产环境安全风险。 -
CVE (Common Vulnerabilities and Exposures): 已知信息安全漏洞和暴露的标准化列表。
-
安全左移 (Shift Left Security): 将安全实践融入软件开发生命周期早期阶段的理念。
-
Trivy (Aqua Security): 一个流行的开源容器镜像漏洞扫描器,功能全面。
-
Clair (CoreOS/Red Hat): 另一个开源容器镜像漏洞扫描器,专注于 OS 层漏洞分析。
-
SARIF (Static Analysis Results Interchange Format): 静态分析结果的标准交换格式。
-
SAST (Static Application Security Testing): 分析源代码或字节码查找漏洞。
-
SCA (Software Composition Analysis): 分析第三方依赖中的已知漏洞。
-
IaC (Infrastructure as Code) 安全扫描: 扫描 IaC 配置文件(如 Terraform, Kubernetes YAML)中的安全配置错误。
-
漏洞数据库 (Vulnerability Database): 存储已知漏洞信息(CVE、受影响版本、修复建议等)的数据库。
-
CVSS (Common Vulnerability Scoring System): 一个开放的行业标准,用于评估计算机系统安全漏洞的严重程度。
-
容器编排 (Container Orchestration):
* 定义: 自动化容器化应用程序的部署、扩展、管理和网络配置的工具和平台。
* 核心价值: 简化大规模容器化应用的运维,实现高可用和弹性伸缩。
* 代表: Kubernetes。 -
Kubernetes (K8s):
* 定义: 一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
* 核心价值: 云原生应用的事实标准管理平台。 -
YAML (YAML Ain’t Markup Language): 一种人类可读的数据序列化语言,常用于配置文件。Kubernetes 资源定义通常使用 YAML。
-
声明式配置 (Declarative Configuration - K8s): 通过描述期望状态而不是执行命令来管理系统。
-
Pod (K8s): Kubernetes 中最小的可部署单元,包含一个或多个容器。
-
Deployment (K8s): 管理 Pod 副本集和应用更新的控制器。
-
ReplicaSet (K8s): 确保在任何给定时间运行指定数量的 Pod 副本的控制器,通常由 Deployment 管理。
-
Service (K8s): 将一组 Pod 暴露为网络服务的抽象,提供稳定的访问入口和负载均衡。
-
ConfigMap (K8s): 存储非敏感配置数据的 K8s 对象。
-
Secret (K8s): 存储敏感数据(如密码、密钥)的 K8s 对象,数据默认 Base64 编码。
-
Base64 编码: 将二进制数据转换为文本的编码方式,不是加密。
-
RBAC (Role-Based Access Control - K8s): Kubernetes 中用于控制对 API 资源访问权限的核心安全机制。
-
Controller (K8s): Kubernetes 控制平面中负责监视集群状态并努力将其调整到期望状态的后台进程。
-
Label (标签 - K8s): 附加到 K8s 对象的键值对,用于组织和选择对象。
-
Selector (选择器 - K8s): 用于根据标签选择一组 K8s 对象的查询。
-
Pod 模板 (Pod Template - K8s Deployment): Deployment 中定义的用于创建其管理的 Pod 的蓝图。
-
containerPort
(K8s Pod Spec): 容器内部监听的端口。 -
port
(K8s Service Spec): Service 监听的端口。 -
targetPort
(K8s Service Spec): Service 将流量转发到的后端 Pod 容器的目标端口。 -
Service 类型 (K8s):
ClusterIP
,NodePort
,LoadBalancer
,ExternalName
。 -
资源请求 (Resource Requests - K8s): 容器保证能获得的最小资源量(CPU, Memory)。
-
资源限制 (Resource Limits - K8s): 容器允许使用的最大资源量。
-
m
(millicores - K8s CPU): CPU 资源的单位。 -
Ki
,Mi
,Gi
(K8s Memory): 内存资源的二进制单位。 -
OOMKilled (Out Of Memory Killed - K8s): 当容器内存使用超过其
limits
时,被 Kubernetes 杀死的事件。 -
CPU 节流 (CPU Throttling - K8s): 当容器 CPU 使用超过其
limits
时,其 CPU 时间片被限制的现象。 -
QoS Classes (服务质量等级 - K8s):
Guaranteed
,Burstable
,BestEffort
,根据资源请求与限制的配置划分。 -
kube-proxy
(K8s): 运行在每个节点上,负责实现 Service 网络规则的组件。 -
iptables / IPVS (Linux):
kube-proxy
用于实现 Service 负载均衡的底层 Linux 内核技术。 -
健康检查探针 (Health Probe - K8s): Kubernetes 用于检测容器健康状况的机制。
-
Liveness Probe (存活探针 - K8s): 检测容器是否存活,失败则重启容器。
-
Readiness Probe (就绪探针 - K8s): 检测容器是否准备好接收流量,失败则从 Service Endpoints 移除。
-
Startup Probe (启动探针 - K8s): 用于慢启动应用,在其成功前禁用 Liveness/Readiness。
-
httpGet
(K8s Probe): 通过 HTTP GET 请求进行健康检查。 -
tcpSocket
(K8s Probe): 通过尝试建立 TCP 连接进行健康检查。 -
exec
(K8s Probe): 通过在容器内执行命令进行健康检查。 -
grpc
(K8s Probe): 通过 gRPC 健康检查协议进行检查。 -
initialDelaySeconds
(K8s Probe): 探针首次执行前的延迟。 -
periodSeconds
(K8s Probe): 探针执行周期。 -
timeoutSeconds
(K8s Probe): 探针执行超时。 -
failureThreshold
(K8s Probe): 判定失败的连续失败次数。 -
successThreshold
(K8s Probe): 判定从失败恢复到成功的连续成功次数。 -
Endpoint / EndpointSlice (K8s): 存储 Service 后端健康 Pod IP 和端口列表的 K8s 对象。
-
服务发现 (Service Discovery - K8s): K8s Service 通过 DNS 和 ClusterIP 实现的服务查找机制。
-
DNS (Domain Name System): 用于将主机名解析为 IP 地址的分布式系统。K8s 集群内通常有自己的 DNS 服务。
-
Ingress (K8s): 管理对集群 Service 的外部 HTTP/HTTPS 路由的 K8s API 对象。
-
Ingress Controller (K8s): 实际实现 Ingress 规则的反向代理服务器(如 Nginx)。
-
服务网格 (Service Mesh - 如 Istio, Linkerd): 在应用层提供服务间通信的专用基础设施层,提供流量管理、安全、可观测性等高级功能。
-
CI/CD (Continuous Integration / Continuous Delivery or Deployment):
* 定义: 持续集成与持续交付/部署。自动化软件交付流程的实践。
* 核心价值: 加速交付、提高质量、降低风险。 -
GitHub Actions: GitHub 提供的 CI/CD 服务。
-
GitLab CI/CD: GitLab 内置的 CI/CD 功能。
-
Jenkins: 开源的、灵活的自动化服务器,常用于 CI/CD。
-
Workflow (GitHub Actions): GitHub Actions 中定义 CI/CD 流程的 YAML 文件。
-
Job (CI/CD): 流水线中的一个可独立执行的任务单元。
-
Step (GitHub Actions): Job 中的单个操作。
-
Action (GitHub Actions): GitHub Actions 中可复用的代码单元。
-
Runner (CI/CD): 执行 CI/CD 作业的环境。
-
Self-hosted Runner (CI/CD): 用户自己部署和管理的 CI/CD 运行器。
-
.gitlab-ci.yml
(GitLab CI): GitLab CI/CD 流水线的配置文件。 -
Pipeline (GitLab CI): GitLab CI 中流水线的顶层概念。
-
Stage (GitLab CI): GitLab CI Pipeline 中的阶段。
-
Artifacts (CI/CD): 构建过程中产生的输出文件(如编译的二进制、测试报告、打包的应用)。
-
Environment (GitLab CI / GitHub Actions): CI/CD 工具中用于定义和管理部署目标环境(如 dev, staging, prod)的概念。
-
Jenkinsfile (Jenkins): 使用 Groovy DSL 定义 Jenkins Pipeline as Code 的文件。
-
Groovy (Programming Language): 一种运行在 JVM 上的动态语言,Jenkins Pipeline DSL 基于它。
-
Plugin (Jenkins): Jenkins 用于扩展功能的模块。
-
Linting (代码检查): 使用静态分析工具检查代码风格、语法错误和潜在问题的过程。
-
Formatting (代码格式化): 使用工具自动调整代码的格式以符合统一的风格规范。
-
Secrets (CI/CD): CI/CD 工具中用于安全存储敏感信息(如密码、API Key)的机制。
-
Variables (CI/CD): CI/CD 工具中用于存储配置参数的机制。
-
.env
文件: 常用于本地开发存储环境变量的文件,不应提交到版本库。 -
模板化配置文件 (Templated Configuration File): 使用占位符或变量的配置文件模板,在部署时渲染生成最终配置。
-
Helm (Kubernetes): Kubernetes 的包管理器,使用模板化 YAML 来定义和部署应用。
-
if
条件 (GitHub Actions): 用于控制作业或步骤是否执行的条件。 -
rules
(GitLab CI): 用于灵活控制作业执行条件的关键字。 -
滚动更新 (Rolling Update): 一种部署策略,逐步用新版本实例替换旧版本实例。
-
蓝绿部署 (Blue-Green Deployment): (再次提及)
-
金丝雀发布 (Canary Release): (再次提及)
-
日志记录 (Logging): 记录应用程序行为、事件和错误的过程。
-
日志聚合 (Log Aggregation): 将分散的日志集中收集、存储和管理的过程。
-
ELK Stack / Elastic Stack: Elasticsearch, Logstash, Kibana (常与 Beats 结合) 的开源日志管理和分析平台。
-
Filebeat (Beats): 轻量级日志数据收集器。
-
Logstash: 功能强大的数据处理管道。
-
Elasticsearch: 分布式搜索和分析引擎。
-
Kibana: 数据可视化和探索平台。
-
结构化日志 (Structured Logging): 将日志记录为机器可解析的结构化格式(如 JSON)。
-
JSON (JavaScript Object Notation): 轻量级的数据交换格式,常用于结构化日志。
-
ECS (Elastic Common Schema): 规范化日志字段的开放标准。
-
@timestamp
(ECS): ECS 中标准的时间戳字段。 -
log.level
(ECS): ECS 中标准的日志级别字段。 -
message
(ECS): ECS 中标准的消息文本字段。 -
trace.id
,transaction.id
,span.id
(ECS): ECS 中用于分布式追踪的关联ID字段。 -
error.type
,error.message
,error.stack_trace
(ECS): ECS 中用于记录错误详情的字段。 -
Grok (Logstash Filter): Logstash 中用于从非结构化文本中提取字段的模式匹配过滤器。
-
索引模板 (Index Template - Elasticsearch): 预定义新创建索引的设置和映射。
-
映射 (Mapping - Elasticsearch): 定义 Elasticsearch 索引中字段的数据类型和索引方式。
-
索引模式 (Index Pattern - Kibana): Kibana 中用于匹配 Elasticsearch 索引的模式。
-
KQL (Kibana Query Language): Kibana Discover 界面中使用的简单查询语言。
-
Lucene Query Syntax: Elasticsearch 底层使用的强大查询语法,Kibana 也支持。
-
APM (Application Performance Monitoring - 应用性能监控):
* 定义: 监控和管理应用程序性能、可用性和用户体验的实践和工具。
* 核心价值: 实时洞察应用健康,主动发现问题,优化性能。 -
指标 (Metrics):
* 定义: 对系统某个方面进行量化测量的数据点,通常带有时间戳和标签。
* 类型: Counter, Gauge, Histogram, Summary。 -
Prometheus: 开源监控和告警系统,核心是指标采集和时序数据库。
-
Grafana: 开源数据可视化和监控平台,常与 Prometheus 配合。
-
Exporter (Prometheus): 从非 Prometheus 原生系统收集指标并转换为 Prometheus 格式的工具。
-
Node Exporter (Prometheus): 暴露主机系统指标。
-
cAdvisor (Google): 暴露容器资源使用指标。
-
kube-state-metrics (Kubernetes): 将 K8s 对象状态转换为指标。
-
JMX Exporter (Java): 通过 JMX 暴露 Java 应用指标。
-
Micrometer (Java): Java 应用指标门面库。
-
prometheus/client_golang
: Prometheus Go 客户端库。 -
prometheus_client
(Python): Prometheus Python 客户端库。 -
Counter (Prometheus Metric Type): 单调递增计数器。
-
Gauge (Prometheus Metric Type): 可任意升降的瞬时值。
-
Histogram (Prometheus Metric Type): 观测值分布的直方图,用于估算分位数。
-
Summary (Prometheus Metric Type): 在客户端计算并暴露预定义分位数。
-
桶 (Bucket - Prometheus Histogram): Histogram 中用于统计观测值分布的区间。
-
le
(less than or equal to - Prometheus Histogram Label): Histogram 桶标签,表示桶的上限。 -
分位数 (Quantile / Percentile): 如 P95, P99,表示数据分布的特定位置。
-
PromQL (Prometheus Query Language): Prometheus 强大的函数式查询语言。
-
rate()
(PromQL Function): 计算 Counter 的平均每秒增长速率。 -
histogram_quantile()
(PromQL Function): 从 Histogram 数据估算分位数。 -
prometheus.yml
: Prometheus Server 的主配置文件。 -
scrape_interval
(Prometheus Config): 指标抓取频率。 -
scrape_configs
(Prometheus Config): 定义抓取作业和目标。 -
static_configs
(Prometheus Scrape Config): 静态配置抓取目标。 -
服务发现 (Service Discovery - Prometheus): Prometheus 动态发现抓取目标的能力。
-
kubernetes_sd_configs
(Prometheus): 基于 K8s API 的服务发现配置。 -
relabel_configs
(Prometheus): 抓取前对目标标签进行重写的配置。 -
RED 方法 (Rate, Errors, Duration - 监控): 面向服务监控的三个关键指标。
-
USE 方法 (Utilization, Saturation, Errors - 监控): 面向基础设施资源监控的三个关键指标。
-
SLA (Service Level Agreement - 服务等级协议): 服务提供商与客户之间关于服务质量(如可用性、性能)的正式承诺。
-
SLO (Service Level Objective - 服务等级目标): 组织内部为衡量服务质量而设定的具体、可量化的目标。
-
SLI (Service Level Indicator - 服务等级指标): 用于衡量 SLO 达成情况的具体指标(如错误率、延迟 P99)。
-
Alertmanager (Prometheus): 处理 Prometheus 告警的独立组件。
-
Sentry: 应用程序错误追踪和崩溃报告平台。
-
DSN (Data Source Name - Sentry): Sentry SDK 初始化时使用的唯一标识符,指向特定的 Sentry 项目。
-
面包屑导航 (Breadcrumbs - Sentry): 记录错误发生前用户操作或应用事件的序列。
-
事务 (Transaction - Sentry Performance): Sentry 性能监控中用于表示一次操作或请求(如一个 HTTP 请求或一个后台作业)的逻辑单元。
-
配置管理 (Configuration Management):
* 定义: 在软件开发和运维中,对应用程序、系统和基础设施的配置参数进行管理、分发、版本控制和审计的实践。
* 核心价值: 确保不同环境配置的一致性、可追溯性和安全性,简化部署。 -
敏感信息管理 (Secrets Management):
* 定义: 专门针对密码、API 密钥、证书等敏感数据进行安全存储、访问控制、生命周期管理和审计的实践。
* 核心价值: 防止敏感信息泄露,保障系统安全。 -
HashiCorp Vault: 流行的开源 Secrets Management 工具。
-
环境变量 (Environment Variables): (再次提及,作为一种配置传递方式
-
十二因子应用 (Twelve-Factor App): 一套用于构建健壮的、可扩展的 SaaS 应用的方法论,其中一条建议是将配置存储在环境中。
-
配置文件挂载 (Mounting Configuration Files - K8s/Docker): (再次提及)
-
配置中心服务 (Configuration Center / Config Server): 集中管理应用配置的服务。
-
Secrets Engines (Vault): Vault 中管理特定类型秘密的组件。
-
KV Secrets Engine (Vault): 存储静态键值对秘密。
-
版本控制 (Versioning - Vault KV V2): KV V2 引擎支持秘密的版本历史。
-
Database Secrets Engine (Vault): 动态生成数据库凭证。
-
动态秘密 (Dynamic Secrets - Vault): 按需生成的、具有短暂生命周期的秘密。
-
TTL (Time-To-Live - Vault Lease): Vault 动态秘密租约的有效时间。
-
AWS, GCP, Azure Secrets Engines (Vault): 动态生成云平台临时凭证。
-
PKI Secrets Engine (Vault): 动态生成数字证书。
-
Auth Methods (Vault): Vault 用于验证客户端身份的机制。
-
Vault Token: Vault 认证成功后返回的客户端凭证。
-
AppRole Auth Method (Vault): 专为机器/应用认证设计的 Vault 认证方法。
-
RoleID, SecretID (Vault AppRole): AppRole 认证所需的两个凭证部分。
-
Kubernetes Auth Method (Vault): 允许 K8s Pod 使用其 Service Account Token 向 Vault 认证。
-
Service Account (Kubernetes): 为 Pod 提供身份的 K8s 对象。
-
Policies (Vault): Vault 中控制对秘密路径访问权限的规则。
-
HCL (HashiCorp Configuration Language): HashiCorp 工具(如 Terraform, Vault, Consul)常用的配置文件语言。
-
Storage Backend (Vault): Vault 用于持久化存储加密秘密数据的后端系统。
-
Consul (HashiCorp): 服务发现、配置和分布式 KV 存储工具,常作为 Vault 的高可用存储后端。
-
Seal/Unseal (Vault): Vault 保护主加密密钥的机制。
-
Master Key (Vault): Vault 的根加密密钥。
-
Unseal Keys (Vault): 用于重构 Master Key 的密钥片段。
-
Shamir 秘密共享算法 (Shamir’s Secret Sharing): 将秘密分割成多份,需要阈值数量的份额才能恢复的算法。
-
自动解封 (Auto-Unseal - Vault): Vault 利用外部 KMS 自动解封的功能。
-
KMS (Key Management Service - 云平台): 云服务商提供的用于管理加密密钥的托管服务。
-
Vault Agent: Vault 的客户端辅助守护进程,简化应用集成。
-
Sink (Vault Agent): Vault Agent 将获取到的 Token 或渲染后的秘密写入的目标(如文件)。
-
Consul Template (Templating Language): Vault Agent 模板使用的模板语言。
-
.ctmpl
文件 (Vault Agent Template): Vault Agent 使用的模板文件扩展名。 -
加密即服务 (Encryption as a Service - Vault Transit Engine): (再次提及)
-
Transit Secrets Engine (Vault): 提供通用加密/解密服务的 Vault 引擎。
-
应用层加密 (Application-Level Encryption): 在应用程序代码内部对数据进行加密。
-
DEK (Data Encryption Key): 实际用于加密数据的密钥。
-
密钥轮换 (Key Rotation): 定期或按需更换加密密钥或凭证的做法。
-
Key Rekeying / Rewrapping (Vault): Vault 用新的主加密密钥重新加密存储后端数据的过程。
-
租约 (Lease - Vault): Vault 动态秘密的生命周期管理机制。
-
续租 (Renewal - Vault Lease): 延长动态秘密租约有效期的操作。
-
抽象工厂 (Abstract Factory - 设计模式): 提供一个接口,用于创建一系列相关或相互依赖的对象家族,而无需指定它们具体的类。
-
Agent (软件代理): 通常指一个在后台运行的、代表用户或另一个程序执行任务的独立软件组件。例如,Vault Agent, CI/CD Runner, Prometheus Exporter。
-
AIOps (AI for IT Operations): 将人工智能和机器学习技术应用于IT运维领域,以实现更智能的故障预测、根因分析、自动化运维等。
-
aiofiles
(Python Library): 一个提供异步文件操作接口的 Python 库,与asyncio
配合使用。 -
aioredis
(Python Library): 一个用于与 Redis 进行异步交互的 Python 客户端库,与asyncio
配合使用。 -
asyncpg
(Python Library): 一个高性能的异步 PostgreSQL 数据库驱动程序,与asyncio
配合使用。 -
Azure Key Vault: 微软 Azure 云平台提供的用于安全存储和管理密钥、证书、连接字符串等敏感信息的服务。
-
Azure Logic Apps: 微软 Azure 提供的用于创建和运行自动化工作流程(可以包含定时调度)的云服务。
-
Azure Monitor Logs: 微软 Azure 提供的用于收集、分析和处理来自 Azure 资源和本地环境的日志数据的服务。
-
Azure RBAC (Role-Based Access Control): 微软 Azure 平台中用于管理对 Azure 资源访问权限的机制。
-
Babel (JavaScript Compiler): 一个广泛使用的 JavaScript 编译器,可以将较新版本的 JavaScript 代码(如 ES6+)转换为向后兼容的旧版本,以便在旧的浏览器或环境上运行。也支持 JSX 转换、TypeScript 转换等。
-
BLAS (Basic Linear Algebra Subprograms): 一组提供基本向量和矩阵运算的标准底层程序接口,常被科学计算库(如 NumPy)用于优化性能。
-
Blueprint (Flask): Flask Web 框架中用于将大型应用组织成一组可独立管理的、可插拔的模块的概念。类似于其他框架中的 APIRouter。
-
Borgmon / Monarch (Google): Google 内部使用的大规模监控系统,对 Prometheus 等开源监控系统的设计产生了深远影响。
-
缓存 (Cache - 软件): 一种高速数据存储层,用于临时存储频繁访问的数据或计算结果,以减少对较慢存储(如数据库、网络API)的访问,从而提高性能和响应速度。
-
缓存命中 (Cache Hit): 请求的数据在缓存中被找到。
-
缓存未命中 (Cache Miss): 请求的数据未在缓存中找到,需要从原始数据源获取。
-
缓存策略 (Caching Strategy): 关于何时、如何以及存储哪些数据到缓存中的规则和算法。
-
回调地狱 (Callback Hell): 在异步编程中,由于层层嵌套的回调函数导致的代码难以阅读、理解和维护的现象。
async/await
和 Promise 旨在解决此问题。 -
CDC (Change Data Capture - 数据库): 捕获数据库中数据变更(插入、更新、删除)并将其作为事件流提供的技术。
-
Chakra UI (React Component Library): 一个流行的 React UI 组件库,注重可访问性、模块化和开发者体验。
-
Checker (如 Flake8, Black, Pylint, ESLint, Prettier, Checkstyle, PMD): 代码静态分析工具,用于检查代码是否符合编码规范、是否存在潜在错误或不良风格,以及自动格式化代码。
-
CI (Continuous Integration - 持续集成): 一种软件开发实践,团队成员频繁地(通常每天多次)将代码变更集成到共享的主干代码库中。每次集成都会通过自动化的构建和测试来验证。
-
CD (Continuous Delivery / Continuous Deployment - 持续交付/部署):
- 持续交付 (Continuous Delivery): CI 的扩展,除了自动化构建和测试外,还自动化将软件发布到类似生产的环境(如预发/Staging 环境)。生产部署通常仍需手动触发。
- 持续部署 (Continuous Deployment): 更进一步,将通过所有自动化测试的构建自动部署到生产环境,无需人工干预。
-
客户端令牌 / 幂等性参数 (Client Token / Idempotency Token - API): 某些 API 允许调用方在请求中传递一个唯一的标识符,API 服务端会用它来保证该操作的幂等性,即使收到重复请求也只执行一次。
-
云服务提供商 (Cloud Service Provider - CSP): 提供云计算服务的公司,如 AWS (Amazon Web Services), Azure (Microsoft Azure), GCP (Google Cloud Platform)。
-
CNCF (Cloud Native Computing Foundation): 云原生计算基金会。一个致力于推广和标准化云原生技术的开源软件基金会,Kubernetes, Prometheus, Envoy 等是其核心项目。
-
代码分割 (Code Splitting - 前端): 一种前端性能优化技术,将 JavaScript 代码包分割成更小的块 (chunks),只在需要时才按需加载,而不是一次性加载所有代码,从而减少应用的初始加载时间。
-
组件 (Component - 前端): 在现代前端框架(如 React, Vue)中,UI 被拆分成独立的、可复用的构建块,称为组件。每个组件封装了自己的视图逻辑和状态。
-
组件化开发 (Component-Based Development): 一种软件开发方法,通过构建和组合可复用的组件来创建应用程序。
-
Consul Template (Templating Language): HashiCorp Consul 和 Vault Agent 使用的一种模板语言,允许将来自 Consul KV 存储或 Vault 秘密的数据动态渲染到配置文件中。
-
容器运行时 (Container Runtime): 负责在宿主机上实际运行和管理容器的底层软件,如 Docker Engine (基于 containerd), containerd, CRI-O。
-
CoreDNS / KubeDNS (Kubernetes): Kubernetes 集群内部使用的 DNS 服务,负责解析 Service 名称到 ClusterIP 地址,以及 Pod 的主机名。
-
Cortex (Monitoring): 一个开源的、可水平扩展的、高可用的、多租户的 Prometheus 长期存储解决方案。
-
CSRF (Cross-Site Request Forgery - 跨站请求伪造): 一种网络攻击类型,诱骗受害者在已登录的 Web 应用上执行非预期的操作。Axios 等库提供 CSRF 保护支持。
-
自定义资源 (Custom Resource Definition - CRD - Kubernetes): Kubernetes 的一种扩展机制,允许用户定义自己的 API 资源类型,并编写自定义控制器来管理这些资源。
-
DAST (Dynamic Application Security Testing): 动态应用程序安全测试。在应用程序运行时,从外部模拟攻击行为以发现漏洞。
-
数据湖 (Data Lake): 一种集中存储各种原始格式(结构化、半结构化、非结构化)的大规模数据的存储库。
-
数据仓库 (Data Warehouse): 一种专门设计用于报告和数据分析的数据库系统,通常存储经过清洗、转换和整合的历史数据。
-
Date
(Javajava.util.Date
- 旧API): Java 早期提供的表示日期和时间的类,存在许多设计缺陷,已被java.time
包取代。 -
Datadog: 一个流行的商业 SaaS 监控和可观测性平台。
-
DML (Data Manipulation Language): SQL 语言中用于操作数据库中数据的命令,如
SELECT
,INSERT
,UPDATE
,DELETE
。 -
Docker Compose: 一个用于定义和运行多容器 Docker 应用程序的工具。
-
Docker Hub: Docker 官方提供的公共容器镜像仓库服务。
-
Docker Scout: Docker 官方提供的容器镜像分析和安全建议服务。
-
Dynatrace: 一个流行的商业 SaaS APM 和可观测性平台。
-
ECharts (Baidu): 一个流行的开源 JavaScript 图表库。
-
ECMAScript (ES): JavaScript 语言的官方标准规范。
-
EDA (Event-Driven Architecture - 事件驱动架构): (再次提及,补充细节) 一种软件架构模式,系统的行为和组件间的通信由异步产生的“事件”来驱动。生产者发布事件,消费者订阅并响应事件。
-
Element Plus (Vue UI Library): 一个流行的 Vue 3 UI 组件库,是 Element UI 的升级版。
-
ELK Stack / Elastic Stack: (再次提及,强调其作为整体解决方案)
-
Envoy Proxy: 一个开源的高性能边缘和服务代理,常用于服务网格和 API 网关。
-
ETL (Extract, Transform, Load): 数据仓库领域常用的数据处理流程:从源系统提取数据,进行转换和清洗,然后加载到目标数据仓库。Logstash 可以看作是一个日志领域的 ETL 工具。
-
FastAPI (Python Web Framework): 一个现代、高性能的 Python Web 框架,基于 Starlette 和 Pydantic,支持异步,自动生成 OpenAPI 文档。
-
FastText (Facebook): 一种用于高效学习词表示(词嵌入)和文本分类的模型。
-
Feature Toggle / Feature Flag: (再次提及)
-
Federation (Prometheus): Prometheus 的一种扩展机制,允许一个 Prometheus Server 从其他 Prometheus Server 的
/federate
端点抓取选定的时间序列数据,用于构建层级监控或聚合数据。 -
Fernet (Python Cryptography Library): Python
cryptography
库中提供的一种对称加密(认证加密)规范。 -
Filebeat Ingest Pipeline: Filebeat 7.x+ 版本引入的功能,允许在 Filebeat 自身内部定义一系列处理器 (Processors) 来对收集到的数据进行解析、转换和丰富,类似于 Logstash 的 Filter 功能,但更轻量。
-
Filter (Logstash): (再次提及,强调其多样性和核心地位) Logstash 数据处理管道中的核心组件,用于对事件进行解析、转换、丰富、删除等操作。
-
Flaky Test (不稳定测试): 指那些在代码没有变化的情况下,有时通过有时失败的自动化测试用例。它们会降低 CI/CD 流水线的可靠性。
-
Flask (Python Web Framework): 一个轻量级的 Python Web 框架。
-
Fluentd: 一个开源的数据收集器,常用于日志聚合,功能与 Logstash 类似,是 EFK Stack 的组成部分。
-
Flux (Facebook Architecture): 一种用于构建客户端 Web 应用的应用架构,强调单向数据流,对 Redux 的设计产生了影响。
-
Formik: (再次提及) React 表单库。
-
FST (Finite State Transducer): 一种有限状态自动机,可以用于高效地表示和查找键值对(如词项字典)。Elasticsearch 和 Lucene 使用它。
-
Future (并发编程): 代表一个异步操作最终结果的占位符对象。操作完成时,Future 会被填充上结果或异常。Python
asyncio.Task
是一种 Future。 -
Garbage Collection (GC - 垃圾回收): 编程语言运行时自动管理内存的一种机制,识别并回收不再被程序使用的内存空间。GC 停顿 (GC Pause) 可能影响应用性能。
-
GCP (Google Cloud Platform): 谷歌云平台。
-
GCP Cloud Audit Logs: GCP 中用于记录管理员活动和对 GCP 资源访问的审计日志服务。
-
GCP Cloud Logging: GCP 提供的集中式日志管理服务。
-
GCP Cloud Scheduler: GCP 提供的用于创建和管理 Cron 作业的托管服务。
-
GCP Compute Engine: GCP 的虚拟机服务 (IaaS)。
-
GCP Policy Analyzer: GCP 中用于分析 IAM 策略以理解谁对哪些资源有什么权限的工具。
-
GCP Secret Manager: GCP 提供的用于安全存储和管理 API 密钥、密码、证书等敏感信息的服务。
-
GCP Service Account: GCP 中用于为应用程序或虚拟机提供身份以便访问 GCP 资源的特殊账户。
-
GDPR (General Data Protection Regulation - 通用数据保护条例): 欧盟关于数据保护和隐私的法规。
-
Gemini (Google LLM): Google 开发的一系列多模态大型语言模型。
-
GEOS (Geometry Engine - Open Source): 一个 C++ 几何引擎库,是许多地理信息系统软件(如 PostGIS, Shapely)的基础。
-
Getter (状态管理): (再次提及)
-
Git: 一个广泛使用的分布式版本控制系统。
-
GitHub: 一个基于 Git 的代码托管平台和开发者协作社区。
-
GitHub Dependabot: GitHub 的一个功能,可以自动检测项目依赖中的已知漏洞和过时版本,并创建 PR 来更新它们。
-
GitHub Environments: GitHub Actions 中用于定义部署目标环境(如 staging, production)并为其配置保护规则和 Secrets 的功能。
-
GitHub Marketplace: 一个可以发现和使用社区及官方提供的 GitHub Actions 的市场。
-
GitLab: 一个完整的 DevOps 平台,提供从代码仓库、CI/CD、制品库到安全扫描、监控等一体化功能。
-
GitLab Container Registry: GitLab 内置的 Docker 容器镜像仓库。
-
GitOps: 一种现代化的运维和应用交付实践,使用 Git 作为声明式基础设施和应用程序配置的单一事实来源。对 Git 仓库的变更会自动触发 CI/CD 流水线来同步到实际环境。
-
GloVe (Global Vectors for Word Representation - Stanford): 一种基于全局词-词共现统计来训练词嵌入的模型。
-
Goroutine (Go): Go 语言中一种轻量级的、由 Go 运行时管理的并发执行单元(类似协程)。
-
gosu
/su-exec
(Utilities): 轻量级的su
和sudo
替代工具,常用于在 Docker 容器中以特定用户身份执行命令,特别是在启动脚本中从 Root 降权到非 Root 用户。 -
Gradle (Build Tool): 一个流行的 Java (及其他 JVM 语言) 项目构建自动化工具,使用 Groovy 或 Kotlin DSL。
-
Grafana Loki: Grafana Labs 开发的一个水平可扩展、高可用、多租户的日志聚合系统,设计理念受 Prometheus 启发,强调通过索引元数据(标签)而不是日志内容来高效存储和查询日志。
-
HAProxy Ingress (Kubernetes): 基于 HAProxy 的 Kubernetes Ingress Controller。
-
Harbor (CNCF Project): 一个开源的企业级容器镜像仓库,提供漏洞扫描(可以集成 Trivy, Clair)、访问控制、镜像复制等功能。
-
HashiCorp: 一家提供开源工具和商业产品以支持云基础设施自动化的公司(如 Terraform, Vault, Consul, Nomad)。
-
HashiCorp Consul: (再次提及)
-
HashiCorp Vault: (再次提及)
-
HSM (Hardware Security Module): 专用硬件设备,用于安全地生成、存储和管理加密密钥,并提供加密操作。Vault 可以与 HSM 集成以增强主密钥的安全性。
-
HTTP Basic Authentication: 一种简单的 HTTP 认证方案,客户端在请求头中发送 Base64 编码的
username:password
。不安全,除非在 HTTPS 下使用。 -
HTTP Header: HTTP 请求和响应中包含的元数据信息,以键值对形式表示(如
Content-Type
,Authorization
,User-Agent
)。 -
HTTP Strict Transport Security (HSTS): 一种 Web 安全策略机制,强制浏览器只通过 HTTPS 与服务器通信。
-
Hutool (Java Utility Library): 一个国产的 Java 工具类库,包含了大量常用工具方法,包括雪花算法实现。
-
IAST (Interactive Application Security Testing): 交互式应用程序安全测试。
-
Idempotency Key: (再次提及,强调其在 API 设计和任务处理中的作用)
-
IEEE 754: 定义浮点数算术标准的技朋规范。
-
ILM (Index Lifecycle Management - Elasticsearch): Elasticsearch 的一项功能,允许用户定义策略来自动化管理索引的生命周期(如从热节点迁移到温/冷节点、定期快照、最终删除)。
-
inotify
(Linux): Linux 内核子系统,用于监控文件系统事件(如文件创建、修改、删除)。 -
Input (Logstash): (再次提及) Logstash 数据处理管道的输入阶段插件。
-
Istio (Service Mesh): 一个开源的服务网格平台,用于连接、保护、控制和观测微服务。
-
Jaeger (CNCF Project): 一个开源的端到端分布式追踪系统。
-
JCA/JCE (Java Cryptography Architecture/Extension): Java 平台提供的用于实现加密、密钥生成和管理、数字签名等安全功能的框架。
-
JHipster: 一个开源的应用程序生成器,用于快速创建基于 Spring Boot 和现代前端框架(如 Angular, React, Vue)的 Web 应用和微服务。
-
Jinja2 (Python Templating Engine): 一个流行的 Python 模板引擎,常用于生成 HTML、配置文件等。
-
JMeter (Apache JMeter): 一个开源的 Java 应用程序,设计用于负载测试功能行为和测量性能。
-
JMX Exporter (Prometheus): (再次提及)
-
Joi (JavaScript Validation Library): 一个流行的 JavaScript 数据验证库,API 风格与 Yup 类似。
-
JSX (JavaScript XML): React 中使用的一种 JavaScript 语法扩展,允许在 JavaScript 代码中编写类似 HTML 的结构来描述 UI。
-
JVM (Java Virtual Machine - Java 虚拟机): Java 程序运行的环境。
-
k6 (Load Testing Tool): 一个现代的、以开发者为中心的开源负载测试工具,使用 JavaScript 编写测试脚本。
-
Key Management Service (KMS): (再次提及)
-
Kibana Query Language (KQL): (再次提及)
-
LAPACK (Linear Algebra Package): 一个提供数值线性代数例程的标准软件库,常被科学计算库使用。
-
Leaf (Meituan Distributed ID Generator): 美团开源的分布式 ID 生成服务,支持号段模式和雪花算法模式。
-
Levenshtein Distance: (再次提及)
-
Linkerd (CNCF Project): 一个开源的服务网格,专注于简单性、性能和安全性。
-
Linux Kernel: Linux 操作系统的核心。
-
Load Balancer (负载均衡器): (再次提及,强调其作为独立网络设备或服务) 将网络流量分发到多个后端服务器,以提高可用性、可扩展性和性能。
-
Locality of Reference (局部性原理 - 缓存/索引): 程序在一段时间内倾向于访问存储器中相近位置的数据的现象。数据库索引(特别是聚集索引)和缓存设计会利用这个原理。
-
Loggly / Papertrail (Log Management Services): 商业 SaaS 日志管理服务。
-
Logstash Grok Filter: (再次提及)
-
LSM-Tree (Log-Structured Merge-Tree): 一种数据结构,常用于需要高写入吞吐量的数据库和存储系统(如 Cassandra, RocksDB, LevelDB, InfluxDB)。
-
Maven (Build Tool): 一个流行的 Java 项目构建自动化和依赖管理工具,使用 XML (
pom.xml
) 配置。 -
Metrics Endpoint (
/metrics
- Prometheus): 应用程序或 Exporter 暴露 Prometheus 格式指标数据的标准 HTTP 路径。 -
Minikube: 一个可以在本地单机运行 Kubernetes 集群的工具,主要用于开发和测试。
-
Mock Server: 在测试中,用于模拟真实后端 API 或服务行为的服务器。
-
Nacos (Alibaba): 阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
-
Nagios: 一个老牌的开源 IT 基础设施监控系统。
-
NAT (Network Address Translation - 网络地址转换): 一种在 IP 网络中将一个 IP 地址空间映射到另一个的技术,常用于将私有网络 IP 地址转换为公网 IP 地址。
-
Nginx (Web Server / Reverse Proxy): 一个高性能的开源 Web 服务器、反向代理、负载均衡器和 HTTP 缓存。
-
Nginx Ingress Controller (Kubernetes): 基于 Nginx 的 Kubernetes Ingress Controller 实现。
-
NMF (Non-negative Matrix Factorization): 一种矩阵分解方法,常用于推荐系统、文本挖掘等领域。
-
Node.js: 一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行时环境,允许在服务器端运行 JavaScript。
-
NoSQL: (再次提及,强调其多样性)
-
NPM (Node Package Manager): Node.js 的默认包管理器和 JavaScript 包的公共仓库。
-
NVD (National Vulnerability Database): 美国国家漏洞数据库,一个由美国政府维护的、包含 CVE 信息的漏洞数据存储库。
-
OkHttp (Java/Android HTTP Client): Square 公司开发的一个高效的 HTTP 和 HTTP/2 客户端,适用于 Java 和 Android。
-
OIDC (OpenID Connect): (再次提及)
-
Olson Database / tzdata: (再次提及,IANA 时区数据库的别名)
-
OpenAPI Specification (OAS) / Swagger: (再次提及)
-
OpenMetrics: OpenAPI 规范的一个演进,旨在为云原生环境中的指标暴露提供一个开放标准,与 Prometheus Exposition Format 高度兼容。
-
Output (Logstash): (再次提及) Logstash 数据处理管道的输出阶段插件。
-
PagerDuty: 一个流行的事件响应和告警管理平台。
-
PCI DSS (Payment Card Industry Data Security Standard): 支付卡行业数据安全标准,针对处理信用卡信息的组织的安全要求。
-
Percona Toolkit: 一组用于 MySQL、MariaDB 和 Percona Server 的高级命令行工具。
-
Pillow (Python Imaging Library Fork): Python 中一个流行的图像处理库,是 PIL (Python Imaging Library) 的一个友好分支。比 OpenCV 更轻量,适合基础图像操作。
-
Pipelining (数据处理/CI/CD): 将一个复杂的任务分解成一系列连续的、可独立执行的阶段或步骤,前一个阶段的输出作为下一个阶段的输入。
-
PITR (Point-in-Time Recovery - 数据库): 将数据库恢复到过去某个特定时间点的状态的能力,通常依赖于完整的备份和事务日志。
-
Pod Security Policy (PSP - Kubernetes - 已弃用,被 Pod Security Admission 取代): Kubernetes 中用于定义 Pod 安全约束的机制。
-
Pod Security Admission (PSA - Kubernetes): Kubernetes 较新版本中取代 PSP 的内置 Pod 安全标准实施机制。
-
Postman (API Platform): 一个流行的 API 开发和测试工具。
-
Process (操作系统): 操作系统中正在运行的程序的实例,拥有独立的内存空间和系统资源。
-
Progressive Delivery: 一种现代软件交付实践,通过逐步向用户发布新功能并持续监控其影响,来降低发布风险并获取快速反馈。金丝雀发布、A/B 测试是其常用技术。
-
Progressive Web App (PWA): 使用现代 Web 技术构建的、旨在提供类似原生应用体验(如离线访问、可安装、推送通知)的 Web 应用。
-
Promise (JavaScript): JavaScript 中用于处理异步操作的对象,代表一个尚未完成但最终会产生结果(成功或失败)的操作。
async/await
是基于 Promise 的语法糖。 -
PromQL (Prometheus Query Language): (再次提及)
-
Props (React/Vue): 组件之间传递数据的主要方式,通常由父组件向子组件传递。
-
Proxy (代理服务器): 在客户端和服务器之间充当媒介的服务器,可以用于缓存、负载均衡、安全过滤、匿名访问等。
-
Pull Model (Prometheus): (再次提及) Prometheus 主动从目标拉取指标。
-
Push Model (Monitoring): (再次提及) 被监控端主动将数据推送到监控系统。
-
Pushgateway (Prometheus): Prometheus 的一个组件,用于接收来自短暂作业的指标推送,然后 Prometheus 再从 Pushgateway 拉取这些指标。
-
Pydantic (Python Data Validation Library): 一个流行的 Python 数据验证和设置管理库,利用 Python 类型注解。常用于 FastAPI 等。
-
PyPI (Python Package Index): Python 软件包的官方第三方软件仓库。
-
QPS (Queries Per Second): 每秒查询数,衡量系统处理查询能力的指标。
-
Quart (Python Web Framework): 一个与 Flask API 兼容的 Python ASGI Web 框架,支持异步。
-
Quartz (Java Scheduler): 一个功能强大的 Java 开源作业调度框架。
-
Quay.io (Red Hat): 一个容器镜像仓库服务,与 Clair 集成较好。
-
Query DSL (Elasticsearch): Elasticsearch 使用的基于 JSON 的强大查询语言。
-
Raft (Consensus Algorithm): 一种用于在分布式系统中实现一致性的算法。KRaft 和 etcd 都使用它。
-
Rate Limiting: (再次提及)
-
RBAC (Role-Based Access Control): (再次提及,强调其在 K8s 和 Vault 中的重要性)
-
RDBMS (Relational Database Management System): 关系型数据库管理系统。
-
React (JavaScript Library): (再次提及)
-
React Hook Form (RHF): (再次提及)
-
React Native (Framework): 使用 React 构建原生移动应用的框架。
-
Reactive Programming (响应式编程): 一种处理异步数据流的编程范式,关注数据流和变化的传播。
-
Readiness Gate (Kubernetes): Pod Spec 中的一个字段,允许外部控制器或系统向 Pod 的就绪状态中注入额外的条件。
-
Reconciliation Loop (Kubernetes Controller): Kubernetes 控制器持续比较期望状态和实际状态,并采取行动使两者一致的循环过程。
-
Redoc (API Documentation Tool): 另一个根据 OAS 文件生成 API 文档的工具。
-
RED Method (Rate, Errors, Duration): (再次提及)
-
Redis (Remote Dictionary Server): 一个高性能的内存键值数据库,也支持多种数据结构(如列表、集合、哈希、流),常用于缓存、会话存储、消息队列等。
-
Redux (JavaScript State Management Library): (再次提及)
-
Redux DevTools: 浏览器扩展,用于调试 Redux 应用,提供状态历史、Action 检查、时间旅行等功能。
-
Redux Observable: Redux 的一个中间件,使用 RxJS (Reactive Extensions for JavaScript) 来处理异步操作和复杂副作用。
-
Redux Saga: Redux 的一个中间件,使用 ES6 Generators 来处理异步操作和复杂副作用,使它们更易于测试和管理。
-
Regression Testing (回归测试): 在软件修改后,重新运行之前的测试用例,以确保修改没有引入新的 Bug 或破坏现有功能。
-
Regular Expression (Regex - 正则表达式): 用于描述和匹配字符串模式的强大工具。
-
Release (软件发布版本): 软件的一个特定版本,通常包含一组新功能、Bug 修复和改进。
-
Remote Read/Write (Prometheus): Prometheus 的一种机制,允许将采集到的指标数据实时或批量地发送到外部的长期存储系统(如 Thanos, Cortex)。
-
Requests (Python HTTP Library): 一个非常流行的、简单易用的 Python HTTP 客户端库。
-
Responsive Design (响应式设计 - Web): 使网站或应用的布局能够自动适应不同屏幕尺寸和设备(如桌面、平板、手机)的设计方法。
-
REST (Representational State Transfer): (再次提及)
-
Ring Buffer (环形缓冲区): 一种固定大小的缓冲区,当写满后,新的数据会覆盖最早的数据,形成循环。Sentry Breadcrumbs 可能使用类似机制。
-
RocksDB (Facebook): 一个高性能的嵌入式键值存储引擎。
-
Rollup (JavaScript Module Bundler): 一个 JavaScript 模块打包工具,专注于生成更小、更高效的代码包,特别适合构建库。
-
Root User (Linux): Linux 系统中的超级用户,拥有对系统的完全控制权限。
-
RPO (Recovery Point Objective - 恢复点目标): 灾难恢复规划中的一个指标,指在发生故障后,可以容忍丢失的最大数据量(按时间度量)。
-
RTO (Recovery Time Objective - 恢复时间目标): 灾难恢复规划中的一个指标,指在发生故障后,业务功能恢复到可接受水平所需的最长时间。
-
RUM (Real User Monitoring - 真实用户监控): 收集和分析真实用户与网站或应用交互的性能数据和体验数据的监控方法。
-
SaaS (Software as a Service - 软件即服务): 一种软件交付模型,软件由服务提供商托管和运营,用户通过网络访问(通常按订阅付费)。
-
Saga Pattern (分布式事务): 一种处理分布式长事务的模式,将一个大事务分解为一系列本地事务,每个本地事务完成后发布事件触发下一个本地事务。如果某个步骤失败,则执行一系列补偿事务来回滚之前的操作。
-
SARIF (Static Analysis Results Interchange Format): (再次提及)
-
SCA (Software Composition Analysis): (再次提及)
-
Scheduler (K8s / Celery Beat): (再次提及,强调其在不同系统中的调度角色)
-
Schema on Read: 在读取数据时才定义或应用数据结构。
-
Schema on Write: 在写入数据时就强制数据符合预定义的结构。
-
Seccomp (Secure Computing Mode - Linux): Linux 内核的一项安全功能,允许限制进程可以使用的系统调用。常用于增强容器安全。
-
Secrets Management: (再次提及)
-
SELinux (Security-Enhanced Linux): Linux 内核的一个安全模块,提供强制访问控制 (MAC) 机制。
-
Selenium (Web Automation Tool): 一个用于 Web 浏览器自动化的工具集和库,常用于 UI 自动化测试。
-
Semantics (语义): 词语、符号或代码的含义。
-
Sentence Transformers (Python Library): 一个 Python 框架,用于计算句子、文本和图像的嵌入向量,基于 Transformer 模型。
-
Serialization / Deserialization: (再次提及)
-
Serverless Computing: 一种云计算执行模型,云服务商动态管理计算资源的分配,应用开发者无需管理服务器。函数即服务 (FaaS) 是其一种实现。
-
Service Account (K8s / GCP): (再次提及)
-
Service Client (API封装): (再次提及)
-
Service Discovery: (再次提及)
-
Service Level Agreement (SLA): (再次提及)
-
Service Level Indicator (SLI): (再次提及)
-
Service Level Objective (SLO): (再次提及)
-
Service Mesh: (再次提及)
-
Service Worker (Web API): 在浏览器后台运行的脚本,可以拦截网络请求、管理缓存、实现离线功能和推送通知。PWA 的核心技术。
-
Session Affinity (Load Balancing - 粘性会话): 负载均衡器的一种配置,将来自同一个客户端(通常基于 IP 或 Cookie)的所有请求始终定向到同一个后端服务器实例。
-
setcap
(Linux Utility): Linux 命令,用于设置可执行文件的权能 (Capabilities),允许非 Root 进程执行某些通常需要 Root 权限的操作(如绑定低位端口)。 -
Shamir’s Secret Sharing: (再次提及)
-
Shared Nothing Architecture: 一种分布式系统架构原则,其中每个节点都是独立的、自给自足的,不共享磁盘或内存,以提高可伸缩性和容错性。
-
Sidecar Container (K8s): 在 Kubernetes Pod 中,与主应用容器一起运行的辅助容器,用于提供额外的功能(如日志收集、网络代理、监控代理),对主应用透明。Vault Agent 常以 Sidecar 模式部署。
-
SIEM (Security Information and Event Management): 安全信息和事件管理。收集、分析和响应来自各种安全设备和应用的日志和事件数据的技术和实践。
-
SIGHUP (Signal): Unix/Linux 系统中的一种信号,通常用于通知守护进程重新加载其配置文件。
-
Single Source of Truth (单一事实来源): 指在系统中,特定信息只存在于一个权威的位置,所有其他部分都从该位置获取或同步信息,以避免不一致。Store 是前端状态管理的单一事实来源。
-
Snowflake Algorithm (雪花算法): (再次提及)
-
SOC 2 (System and Organization Controls 2): 一项针对服务提供商的审计标准,评估其在安全性、可用性、处理完整性、机密性和隐私性方面的控制措施。
-
Socket (网络编程): 网络通信的端点,应用程序通过 Socket 发送和接收数据。
-
Solr (Apache Solr): 一个开源的企业级搜索平台,基于 Lucene。
-
SPA (Single-Page Application - 单页应用): (再次提及)
-
SPI (Service Provider Interface - Java): Java 中一种用于实现可插拔扩展的机制,允许第三方为某个接口提供具体的实现。SLF4j 利用它。
-
Splunk: 一个流行的商业平台,用于搜索、监控和分析机器生成的大数据(如日志、指标、事件)。
-
SQL Injection (SQL注入): 一种常见的 Web 应用安全漏洞,攻击者通过在输入字段中注入恶意的 SQL 代码,来欺骗应用执行非预期的数据库操作。
-
SRE (Site Reliability Engineering - 网站可靠性工程): Google 提出的一套工程实践和文化理念,旨在构建和运维大规模、高可用的分布式系统。
-
SSH (Secure Shell): 一种加密的网络协议,用于安全地远程登录服务器和执行命令。
-
SSL (Secure Sockets Layer): TLS 的前身,一个用于在网络上建立加密连接的安全协议。现在通常说的 SSL 实际上是指 TLS。
-
SSL/TLS 终止 (SSL/TLS Termination): 在反向代理或负载均衡器层面处理 HTTPS 请求的解密和加密,后端应用服务器只需处理普通的 HTTP 请求。
-
Starlette (Python ASGI Framework): 一个轻量级的 ASGI (Asynchronous Server Gateway Interface) 框架/工具包,用于构建高性能的异步 Web 服务。FastAPI 基于它。
-
StatefulSet (Kubernetes): Kubernetes 中用于管理有状态应用的控制器,为每个 Pod 提供稳定的持久化存储和网络标识符。
-
Static Analysis (静态分析): 在不实际运行程序的情况下,对其源代码或字节码进行分析,以查找错误、漏洞或不符合规范的地方。
-
STS (Security Token Service - AWS): (再次提及)
-
Subquery (子查询 - SQL): 嵌套在另一个 SQL 查询中的查询。
-
SVD (Singular Value Decomposition - 奇异值分解): 线性代数中的一种矩阵分解方法,常用于推荐系统(协同过滤)、降维等。
-
Swagger: (再次提及,强调其与 OpenAPI 的关系,Swagger 是早期名称和工具集品牌)
-
Synthetic Monitoring (综合监控): 通过模拟用户行为或 API 调用来主动探测应用的可用性和性能,即使没有真实用户流量。
-
Syslog: 一种用于在 IP 网络中转发日志消息的标准协议。
-
TCP (Transmission Control Protocol - 传输控制协议): 面向连接的、可靠的传输层协议,是互联网核心协议之一。
-
Terraform (HashiCorp): 一个流行的开源基础设施即代码 (IaC) 工具,用于定义和配置云和本地资源。
-
Thanos (CNCF Project): 一个开源的、高可用的、具有长期存储能力的 Prometheus 集群解决方案。
-
Thread (线程 - 操作系统): 操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程。
-
Thread Pool (线程池): 一种管理一组工作线程的技术,用于执行异步任务,避免为每个任务都创建新线程的开销。
-
Throttling (节流): 限制某个操作或请求的速率。
-
TLS Certificate: (再次提及) 数字证书,用于在 TLS/SSL 通信中验证服务器或客户端的身份。
-
Tomcat (Apache Tomcat): 一个开源的 Java Servlet 容器和 Web 服务器。
-
Traefik (Ingress Controller): 一个现代的 HTTP 反向代理和负载均衡器,也常作为 Kubernetes Ingress Controller。
-
UDP (User Datagram Protocol - 用户数据报协议): 无连接的、不可靠的传输层协议,速度快但可能丢包。
-
UID (User ID - Linux): Linux 系统中用户的数字标识符。
-
UI (User Interface - 用户界面): (再次提及)
-
Unchecked Exception (非检查型异常 - Java): 继承自
RuntimeException
或Error
的异常,编译器不强制要求捕获或声明抛出。 -
Undertow (JBoss Web Server): 一个高性能、灵活的 Java Web 服务器和 Servlet 容器,常被 Spring Boot 内嵌。
-
Unicode: 一种字符编码标准,为世界上大多数书写系统中的每个字符分配一个唯一的数字代码。
-
useForm
(React Hook Form Hook): React Hook Form 提供的核心 Hook,用于初始化表单状态、注册字段、处理提交和验证。 -
User Agent (HTTP Header): HTTP 请求头字段,包含发出请求的客户端软件(如浏览器、爬虫、库)的识别信息。
-
User Story (敏捷开发): 从用户角度描述软件功能需求的一种简短、简单的方式。
-
Vercel: 一个专注于前端开发和部署的云平台。SWR 库由 Vercel 开发。
-
Virtual DOM (虚拟DOM): (再次提及)
-
Vite (Frontend Build Tool): 一个现代化的前端构建工具,以其极快的冷启动速度和即时热模块替换 (HMR) 而闻名。
-
Volume (K8s/Docker): 容器中用于持久化存储数据或在容器间共享数据的存储抽象。
-
Volume Mount (K8s/Docker): 将 Volume 挂载到容器内部的特定文件系统路径的操作。
-
Vue.js (Frontend Framework): (再次提及)
-
Vue Native (Framework): 使用 Vue.js 构建原生移动应用的框架。
-
Vue Router: Vue.js 官方的路由管理器。
-
Vuex: (再次提及)
-
WAI-ARIA (Web Accessibility Initiative – Accessible Rich Internet Applications): 一套为残障人士(如使用屏幕阅读器的用户)提供更易访问的 Web 内容和 Web 应用的技术规范。
-
Web App Manifest: 一个 JSON 文件,提供了 Web 应用的信息(如名称、作者、图标、描述、启动URL、显示模式),用于将 Web 应用“安装”到设备主屏幕并提供类似原生应用的体验。PWA 的核心技术之一。
-
Web Identity Federation (AWS): AWS 的一种功能,允许来自公共身份提供商(如 Login with Amazon, Facebook, Google)或私有 OIDC 兼容提供商的用户获取临时的 AWS 凭证以访问 AWS 资源。
-
Web Vitals (Google): Google 提出的一组用于衡量网站用户体验质量的核心指标,如 LCP (Largest Contentful Paint), FID (First Input Delay - 已被 INP 取代), CLS (Cumulative Layout Shift), INP (Interaction to Next Paint)。
-
Webpack (Module Bundler): 一个非常流行的 JavaScript 模块打包工具,可以将多个模块及其依赖打包成一个或多个静态资源文件。
-
WebSocket: 一种网络通信协议,允许在单个 TCP 连接上进行全双工、双向的实时通信。常用于聊天、实时游戏、股票报价等。
-
Word2Vec (Google): 一种用于从原始文本中学习词嵌入的流行模型。
-
X.509 Certificate (数字证书): 一种遵循 X.509 标准的公钥证书,用于在网络通信中验证身份和建立安全连接(如 TLS/SSL)。
-
XML (Extensible Markup Language): 一种标记语言,设计用于传输和存储数据,具有自描述性。
-
XSS (Cross-Site Scripting - 跨站脚本攻击): 一种常见的 Web 安全漏洞,攻击者将恶意脚本注入到其他用户会浏览的网页中,从而窃取用户信息或执行恶意操作。
-
Yarn (Package Manager): 另一个流行的 JavaScript 包管理器,与 npm 类似。
-
Zabbix: 一个开源的企业级 IT 监控解决方案。
-
Zipkin (OpenTracing Project): 一个开源的分布式追踪系统。