后端开发技术栈
后端开发技术栈
- 核心技术
- 内容平台 (Content Platform)
- 电商 (E-Commerce)
- 金融科技 (FinTech) / 支付
- 物联网 (IoT - Internet of Things)
- 游戏后端 (Game Backend)
- 社交平台
- 搜索平台
- 企业级应用开发
- 音视频处理后端
- 地图与地理位置服务
- DevOps
- 大数据开发
- 大模型应用开发
- 智能合约开发
核心技术
编程语言
- Java:开发企业级应用,生态成熟稳定(Spring Boot框架)
- Python:语法简洁,开发效率高,在AI和数据分析领域优势明显(Django, Flask框架)
- JavaScript (Node.js):允许使用JS编写后端,前后端技术栈统一(Express.js, Koa.js, NestJS框架)
- Go:由Google开发,以高并发和高性能著称,适合微服务和云计算(Go-kit, Gin框架)
- C#:主要用于.NET生态系统,强大且功能全面
- PHP:传统的Web开发语言,WordPress等大量网站使用
数据库
- SQL:关系型数据库,如 MySQL、PostgreSQL、SQL Server。
- NoSQL:非关系型数据库,如 MongoDB(文档型)、Redis(键值对,常用作缓存)。
API:
- RESTful API:服务器决定每个端点(URL)返回什么数据结构
- GraphQL:客户端决定需要什么数据,以及数据的结构
Web服务器:Nginx、Apache。
用户认证(Authentication) 与 授权(Authorization)
中间件:中间件是位于操作系统和应用程序之间的通用服务软件,关注高性能、高并发、高可靠性和可扩展性。典型中间件产品:
- 消息队列:Kafka, RocketMQ, RabbitMQ - 负责异步通信、流量削峰、解耦服务
- 缓存中间件:Redis - 提供分布式缓存服务
- 配置中心:Apollo, Nacos, Consul - 统一管理所有服务的配置,实现动态更新、版本控制、环境隔离
- RPC框架:Dubbo, gRPC, Spring Cloud - 简化服务之间的远程调用
- 网关:Nginx, Spring Cloud Gateway, Kong, APISIX - 负责流量路由、认证、限流、熔断等
分布式系统理论:
- CAP定理:当 网络分区P 必然发生时,必须在 一致性C 和 可用性A 之间做出选择
- 分布式一致性:强一致性、弱一致性、最终一致性
- 分布式共识:实现强一致性的具体算法(Paxos、Raft、ZAB)
- 分布式事务:在业务层面实现跨服务的数据一致性(2PC、Saga、TCC)
领域模型:领域模型是对业务领域中核心概念、实体及其之间关系的一种抽象表达,并确保开发人员(无论是产品、设计还是工程师)对业务有一致的理解。
- 实体:具有唯一标识和生命周期的对象。例如:用户(User)、订单(Order)、商品(Product)。每个订单都有一个唯一的ID。
- 值对象:没有唯一标识,通过其属性值来描述的对象。例如:地址(Address)、金额(Money)。两个金额都是100元的Money对象是等价的。
- 聚合根:一组相关对象的根实体,是外部访问这组对象的唯一入口。例如:订单(Order)是聚合根,它包含了订单项(OrderItem),你要修改订单项必须通过订单这个根。
- 领域服务:一些操作或行为涉及多个实体协作,它们被封装成服务。例如:资金转账服务(TransferService),它需要操作“转出账户”和“转入账户”两个实体。
内容平台 (Content Platform)
代表:知乎、微博、抖音、微信公众号、今日头条
核心业务特点:
- 读多写少:阅读、刷新的请求量远高于发布内容的请求。
- 内容多样性:文本、图片、短视频、长视频、直播等。
- 个性化推荐:核心价值在于将海量内容与用户兴趣匹配。
- 高并发与流量突增:热点事件容易导致流量瞬间飙升。
特定技术与架构:
- 内容缓存:
Redis: 极致性能,缓存用户信息、热点文章、评论列表、关注关系等。
Memcached: 简单的KV缓存。 - 内容存储:
对象存储 (OSS/COS/S3): 存储图片、视频等大型静态资源,并通过CDN加速分发。
CDN (内容分发网络): 将静态内容推送到边缘节点,使用户就近访问,极大减轻源站压力并提升加载速度。 - 搜索引擎:
Elasticsearch: 用于复杂且快速的全文搜索、模糊查询、排序(如按时间、热度)。 - 消息队列:
Kafka: 处理用户行为(点赞、评论、关注)海量日志流的异步化和削峰填谷,并供大数据和推荐系统消费。 - 大数据与推荐系统:
Flink/Spark: 实时计算用户行为,更新用户画像。
Hadoop/Hive: 离线分析历史数据,训练机器学习模型。
向量数据库 (Milvus, Pinecone): 用于存储Embedding,进行高效的相似性检索,是新一代AIGC和推荐系统的核心。
电商 (E-Commerce)
代表:淘宝、京东、Amazon
核心业务特点:
- 交易核心:一切围绕“买”和“卖”,对数据一致性、事务性要求极高。
- 系统复杂:包含商品、订单、库存、支付、物流、营销、售后等多个紧密耦合的子系统。
- 高并发秒杀:定时抢购活动是对系统极限能力的考验。
- 数据驱动:精准营销、销量预测、库存管理等严重依赖数据。
特定技术与架构:
- 分布式事务:
Seata: 解决跨多个数据库/服务的业务数据一致性问题(如下单时扣库存、创建订单、计算优惠券)。 - 库存控制:
Redis: 缓存商品库存,利用其单线程原子操作(DECR)防止超卖。 - 秒杀方案:
技术组合:Redis预减库存 + 消息队列异步下单 + 限流&熔断(Sentinel/Hystrix)。核心思路是层层过滤,将绝大部分请求在最前端就直接拒绝,只有少量请求进入后端交易流程。 - 分布式锁:
Redis (SETNX命令) / ZooKeeper: 防止多人同时操作同一资源(如一个用户只能抢一单)。 - 复杂搜索与筛选:
Elasticsearch: 提供商品的多维度、复杂条件搜索和聚合分析(如按品牌、价格区间、属性筛选)。 - 数据同步:
Canal: 监听数据库Binlog,实时将MySQL数据同步到ES或Redis,解决多数据源一致性问题。
金融科技 (FinTech) / 支付
代表:支付宝、各大银行App、证券交易系统
核心业务特点:
- 数据强一致性:资金数据一分不能错,对ACID事务要求最高。
- 超高安全性:防篡改、防盗窃、防攻击。
- 高可用性:系统宕机意味着巨大经济损失和信誉风险,要求99.999%的可用性。
- 合规与审计:所有操作必须留有记录,可追溯。
特定技术与架构:
- 数据库:
传统关系型数据库:Oracle、DB2 依然占据重要地位,因其极强的事务一致性和稳定性。
MySQL/PostgreSQL: 也在很多互联网金融公司中使用,通常需要一主多从、分库分表(ShardingSphere)来扩展。 - 分布式事务:
TCC (Try-Confirm-Cancel): 高性能最终一致性方案,适用于核心交易链路。
SAGA: 长事务解决方案。 - 安全与密码学:
HTTPS、双向认证、数字签名、非对称加密是标准配置。 - 批量处理与对账:
每日结束时需要跑批处理作业,进行资金清结算。常用Spring Batch等框架。
物联网 (IoT - Internet of Things)
代表:智能家居、车联网、工业传感器监测
核心业务特点:
- 海量设备连接:需要支持百万、千万级设备的并发长连接。
- 高吞吐数据:设备持续上报小量但频率极高的状态数据(如温度、位置)。
- 协议多样:设备使用多种协议(MQTT, CoAP, LoRaWAN等),平台需要适配。
- 数据处理:需要对时序数据进行存储、分析和告警。
特定技术与架构:
- 通信协议:
MQTT: 物联网领域事实标准的轻量级发布/订阅消息协议,专为不稳定网络设计。 - 物联网平台:
EMQX: 开源的高性能MQTT消息代理。
ThingsBoard: 开源物联网平台,提供设备管理、数据可视化和规则链功能。 - 时序数据库:
InfluxDB: 专门用于存储和处理时间序列数据(如传感器读数)。
TDengine: 国产开源的时序数据库,性能突出。
游戏后端 (Game Backend)
代表:《王者荣耀》、《原神》、《魔兽世界》
核心业务特点:
- 实时性要求极高:毫秒级的延迟直接影响游戏体验和公平性。
- 有状态服务:服务器需要长期维持玩家的连接和游戏状态(位置、血量等)。
- 广播通信:需要将一个人的状态变化(移动、攻击)快速广播给房间内的其他所有玩家。
- 高频率小数据包:通信内容简单但频率非常高。
特定技术与架构:
- 网络协议:
TCP: 可靠,但延迟相对高。用于对可靠性要求高的场景(如登录、支付、重要状态同步)。
UDP + 自定义可靠层:为了极致降低延迟,很多实时竞技游戏基于UDP,并在其上实现自己的可靠性保证和乱序重传机制(如KCP协议)。
WebSocket: 长连接协议,适用于页游、H5游戏和需要服务器主动推送的消息。 - 游戏服务器框架:
KBEngine: 开源MMOG服务端引擎。
Skynet: 轻量级的高并发框架,在国内游戏业应用广泛。
Pomelo: 基于Node.js的快速、可扩展的游戏服务器框架。 - 状态同步 vs 帧同步:
这是两种核心的同步架构,是游戏服务器设计的核心决策。 - 全球同服与匹配:
需要复杂的分区架构和匹配服务,确保玩家能快速找到实力相近的对手。
社交平台
社交平台是内容平台的一种,但其核心更侧重于用户关系和实时互动。
核心业务特点:
- 关系网络:关注/粉丝、好友关系是核心。海量的“边”数据(用户之间的关系)计算和存储是巨大挑战。
- 实时性:消息(IM)、通知、动态推送要求低延迟。
- 动态流:每个用户的首页都是为其动态生成的、按时间或热度排序的内容流(Timeline/Feed)。
- 高并发写入与读取:发消息、点赞、评论等操作频率极高,同时Feed流刷新请求量巨大。
特定技术与架构:
- 关系与图谱存储:
图数据库:如 Neo4j,专门为处理“多对多”的复杂关系设计,非常适合进行社交关系挖掘(如二度人脉、推荐关注)。
Redis: 使用其Set、Sorted Set等数据结构缓存用户的好友列表、粉丝列表,实现快速的共同关注判断等。 - 即时通讯:
协议:WebSocket(主流)或长轮询,用于维持海量用户的长连接,实现消息实时推送。
消息路由:自研或使用MQTT协议的消息网关,负责将消息准确推送到在线的目标用户。
消息存储与同步:使用Redis存储在线用户的会话和最新消息,使用HBase或Cassandra等可扩展的NoSQL数据库持久化海量的历史消息记录,支持多端消息同步。 - 动态流/Feed流:
写扩散 (Fan-out-on-write):用户发布动态后,立即将动态写入其所有粉丝的“收件箱”(如Redis Sorted Set)。适合粉丝数不多的场景(如微信朋友圈),延迟低。
读扩散 (Fan-out-on-read):用户发布动态只写入自己的“发件箱”,粉丝读取Feed流时,系统再去拉取其所有关注人的发件箱并聚合。适合粉丝数极多的场景(如大V微博),节省存储空间。
混合模式:结合两者,对小V采用写扩散,对大V采用读扩散。这是大型社交平台的主流方案。 - 实时计数:
Redis: 用于存储点赞数、评论数、未读消息数等,利用其内存高速读写的特性。
搜索平台
搜索平台的核心是将“数据”快速转化为“可被检索的信息”。
核心业务特点:
- 海量数据索引:需要处理PB级别的原始数据。
- 低延迟查询:用户期望在毫秒级得到结果。
- 高相关性排序:结果是否准确相关是核心价值。
- 可扩展性与高可用:索引和查询服务都需要能水平扩展。
特定技术与架构:
- 核心引擎:
Elasticsearch:基于Lucene的分布式搜索引擎,是当前事实上的标准。提供全文检索、结构化查询、聚合分析等功能。
Apache Solr:同样基于Lucene的另一个优秀搜索引擎。 - 数据采集:
爬虫系统:对于全网搜索引擎(如Google、百度),需要庞大的分布式爬虫(如 Scrapy、Nutch)来抓取和更新网页内容。
数据接入:对于企业内部搜索,通过Logstash、Canal、Flink CDC等工具实时同步业务数据库(MySQL)和数据仓库的数据到搜索引擎。 - 查询分析与优化:
分词器:中文搜索需要IK Analyzer、jieba等分词器将文本切分为有意义的词条。
排序算法:基于BM25、TF-IDF等算法,并结合用户行为(点击率、停留时间)进行机器学习排序,不断提升结果相关性。 - 高性能与高可用:
分布式架构:ES本身是分布式的,索引可分为多个分片,并设置副本,同时实现负载均衡和故障转移。 - 辅助技术:
Redis:缓存热门搜索词和建议词。
Kafka:作为数据管道,承接爬虫或业务系统产生的数据,再批量导入ES,起到削峰填谷的作用。
企业级应用开发
企业级应用的核心是复杂业务流程、数据一致性、系统集成和安全合规。
后端框架:
- Java EE / Jakarta EE: 传统重型企业级标准,提供了一整套规范(如JMS, JTA, Servlets)。
- Spring Boot / Spring Framework: 当今绝对的主流。其Spring Boot的开箱即用特性和Spring Cloud的微服务治理能力,极大地加速了企业级开发。
- .NET Core: 在微软生态的企业中广泛应用,性能优异,跨平台支持好。
业务流程与管理:
- 工作流引擎: 用于管理和自动化复杂的业务流程。
Camunda, Activiti: 基于BPMN标准的开源工作流引擎,可以可视化地设计、执行和监控业务流程。 - 规则引擎: 将易变的业务决策逻辑从代码中分离出来,实现动态配置。
Drools: 强大的开源规则引擎。
数据持久化:
- 关系型数据库: Oracle, SQL Server, MySQL, PostgreSQL。企业应用对事务一致性要求极高,关系型数据库是首选。
- ORM框架: MyBatis, Hibernate (JPA实现),用于简化数据库操作。
系统集成与API:
- ESB (企业服务总线) / 消息中间件: 用于整合各种异构系统(如SAP、OA、CRM)。
IBM MQ, Apache ActiveMQ, RabbitMQ。 - API 管理: Apache Camel (集成框架), MuleSoft, 用于API的统一管理、发布和监控。
- Web Services: SOAP协议仍在许多老牌企业系统中使用,需要与之交互。
安全与认证:
- 单点登录: OAuth 2.0 / OpenID Connect 协议。
- 实现方案: Keycloak (开源), Okta (商业), Azure AD。
典型架构
从传统的单体架构 + SOA,逐步向微服务架构迁移。微服务之间通过 RESTful API 或 gRPC 进行通信,使用 Spring Cloud Alibaba 或 Istio 进行服务治理。
音视频处理后端
该领域的核心挑战是处理海量流数据、低延迟、高带宽和高性能编解码。
核心处理库:
- FFmpeg: 音视频领域的“瑞士军刀”,几乎是所有音视频处理服务的基础。用于转码、剪辑、截图、封装、推拉流等几乎所有操作。
- GStreamer: 另一个强大的多媒体框架,采用管道架构,更灵活。
流媒体协议:
- 推流协议: RTMP (Real-Time Messaging Protocol), 虽然较老,但仍然是直播推流最广泛使用的协议。
- 播放协议:
- HLS (HTTP Live Streaming): 苹果公司推出的协议,基于HTTP,兼容性极好,但有较高延迟(通常10-30s)。适合直播和点播。
- DASH (Dynamic Adaptive Streaming over HTTP): HLS的竞争对手,是国际标准。
- WebRTC: 谷歌推出的开源项目,旨在实现超低延迟(毫秒级)的浏览器间音视频通信。用于视频会议、在线教育等实时互动场景。
编解码器:
- 视频编码: H.264/AVC, H.265/HEVC (更高效,压缩率更高), AV1 (开源且 royalty-free 的下一代编码)。
- 音频编码: AAC, Opus (低延迟,WebRTC默认)。
基础设施与服务:
- CDN (内容分发网络): 用于加速音视频内容的分发,降低源站压力。
- 媒体服务器:
- SRS: 简单高效的国产开源RTMP/HLS服务器。
- Janus: 著名的WebRTC媒体服务器网关。
- Kurento: 功能强大的WebRTC媒体服务器。
- 对象存储: AWS S3, 阿里云 OSS 等,用于存储海量的原始视频文件和转码后的文件。
深度学习应用:
- 内容审核: 使用CNN等模型进行音视频的内容审核。
- 语音识别/合成: ASR (语音转文字), TTS (文字转语音)。
地图与地理位置服务
该领域的核心是处理空间数据、高效地理查询和路径规划算法。
空间数据库:
- PostGIS: PostgreSQL 的空间地理信息扩展,是事实上的开源标准。它允许将地理位置数据存储在数据库中,并执行复杂的空间查询(如“查找我附近5公里内的所有餐厅”)。
- 其他: MySQL 也提供简单的空间扩展,但功能远不如PostGIS强大。
地图引擎与渲染:
- 地图切片: 将地图数据预处理成不同缩放级别的小图片(瓦片),前端快速加载和拼接。
- 引擎: Mapnik (开源地图渲染工具库), Tile38 (开源的地理空间数据库和地理围栏引擎)。
服务与API:
- 地理编码/逆地理编码: 将地址转换为经纬度,或将经纬度转换为地址描述。
服务商: 高德地图API、百度地图API、Google Maps API。 - 路径规划:
算法: Dijkstra, A* 算法。对于大规模路网,常用更高效的收缩层次等优化算法。
服务: 同样由上述地图服务商提供API。
大数据处理:
- 轨迹处理: 处理海量的GPS点数据,进行纠偏、路网匹配、分析拥堵情况。
- 技术栈: 常使用 Hadoop、Spark 等大数据框架来处理TB/PB级的空间数据。
前端地图库:
- Leaflet: 轻量级、开源、移动端友好的交互式地图库。
- Mapbox GL JS: 高性能、可高度定制化的矢量地图渲染库。
- OpenLayers: 功能强大的开源地图库。
典型架构:
- 数据通过众包、第三方采购、车辆GPS等方式收集。
- 使用大数据平台进行清洗和处理,生成路网数据。
- 处理后的数据存入空间数据库。
- 后端服务(如Java/Go服务)提供RESTful API,封装对空间数据库的查询和路径规划算法。
- 前端通过地图API/SDK请求服务,并渲染结果。
DevOps
DevOps是“Development(开发)”和“Operations(运维)”的结合。旨在通过自动化工具和流程,缩短系统开发周期,提高部署频率和可靠性:
- CI/CD:持续集成/持续部署,工具如 Jenkins、GitLab CI
- 容器化与编排:Docker、Kubernetes
- 基础设施即代码:Terraform、Ansible
- 云平台:AWS、Azure、GCP、阿里云
- 监控与日志:OpenTelemetry、Prometheus、Loki、Jaeger、Grafana、ELK Stack
大数据开发
职责描述:更偏向于数据处理、分析和挖掘,从海量数据中提取有价值的信息以支持决策。与后端开发有交集但侧重点不同。核心技术:
- 编程语言:Python(Pandas, NumPy, Scikit-learn)、R、Scala。
- 大数据框架:Hadoop、Spark。
- 数据库:HBase、ClickHouse 等用于OLAP分析的数据库。
- 数据可视化:Tableau、Power BI、ECharts。
- 机器学习:TensorFlow、PyTorch。
大模型应用开发
大模型(Large Language Model、LLM):指参数规模巨大(数十亿甚至万亿)、在海量文本数据上训练出来的深度学习模型(主要是Transformer架构)。
核心能力:理解和生成人类语言,具备强大的语义理解、文本生成、推理、代码编写、翻译等能力。
代表:OpenAI GPT、Google Gemini、Anthropic Claude、Alibaba Qwen、DeepSeek
大模型应用开发:利用预训练好的大模型,通过API调用或引导来完成特定任务。
主流开发范式:
- 提示工程(Prompt Engineering)
- 通过优化输入提示词引导模型输出期望结果。
- 最基础、最常用的方式,应用开发的核心技能。
- 函数调用(Function Calling)
- 让大模型理解你的工具(函数)描述,并根据用户请求决定调用哪个函数以及传入什么参数。
- 用于将大模型能力与外部工具、API、数据库连接起来。
- 检索增强生成(RAG)
- 将模型的知识与你自己的专有数据结合,先检索相关数据,再将数据作为上下文喂给模型生成答案。
- 解决模型知识截止和私有数据访问问题。
- 嵌入表示(Embeddings)
- 将文本转化为高维向量(数字表示),用于语义搜索、聚类、分类等任务。
- 常与RAG结合使用。
- 微调(Fine-Tuning)
- 使用领域数据继续训练预训练模型,提升特定任务表现。
- 成本相对较高,但效果更好。
- 智能体(Agent)
- 让模型从“被动响应工具”升级为“主动执行任务的智能体”。
- 能理解目标、自主规划、调用工具、执行任务并持续迭代。
- 开发框架有 LangChain、AutoGen、BabyAGI
其他相关技术
- 流式传输(SSE):从服务器到客户端的单向数据推送,使用标准的 HTTP 协议,支持断线重连,默认传输文本数据
- 向量数据库:Pinecone、Weaviate、Qdrant、Milvus、Chroma
- 评估体系:评估准确性、相关性、有害性、幻觉程度
智能合约开发
区块链是指公链(如以太坊、Solana)或联盟链(如FISCO BCOS)本身,是一套账本系统,提供了去中心化、不可篡改、可追溯的信任基础。
而智能合约是在区块链上运行的自动执行的数字合同。
两者结合,共同催生了Web3和去中心化应用的整个生态。
编程语言:
- Solidity:绝对主流,是以太坊虚拟机(EVM)生态的标配。语法类似JavaScript,是必须掌握的技能。
- Vyper:以太坊生态的另一门语言,更注重安全性,语法接近Python。
- Rust:用于在非EVM链上开发智能合约,如Solana、Near。
- Move:专为数字资产设计的语言,用于Aptos和Sui等新公链。
开发框架与工具:
- Hardhat:当前以太坊生态最流行的开发框架(测试、编译、部署)。
- Truffle Suite:老牌的开发框架。
- Foundry:用Rust编写,以速度和直接使用Solidity进行测试而闻名。
- Remix IDE:基于浏览器的在线开发环境,非常适合初学者。
测试:
需要编写全面的单元测试和集成测试,因为合约一旦部署极难修改。Hardhat和Foundry都提供了强大的测试工具。