后端架构演进:从单体到云原生(面向零基础初学者的实战教程)
开篇:后端架构是什么?我们要学什么?

你可能听说过“后端”、“服务器”、“网站是如何工作的”这样的词。简单来说,后端就是网站或 App 背后真正做事情的地方,比如处理用户登录、保存数据、发消息、计算价格等等。
而今天我们要讲的是:后端架构是怎么一步步发展起来的,从最开始一个简单的程序慢慢演化成现在的“云原生”架构。
不管你是想入行程序员、转行开发者,还是对技术感兴趣的普通用户,这篇教程都适合你。我们用最直白的语言讲解复杂概念,并通过代码带你一步步实践。
环境准备:准备好你的开发工具

在开始写代码之前,我们需要配置好环境:
所需工具:
安装步骤:
安装 Node.js
- 进入官网下载页面:https://nodejs.org
- 选择
LTS版本(稳定版本)进行安装 - 安装完成后,在命令行输入:
如果看到类似node -v npm -vv18.x.x和9.x.x的输出,说明安装成功。
安装 VS Code
- 访问 https://code.visualstudio.com/
- 下载并安装,打开后即可使用
安装 Postman(可选但强烈推荐)
- 下载地址:https://www.postman.com/downloads/
- 安装后可用于测试我们写的接口
核心概念:什么是后端架构?为什么要演变?

一、单体架构(Monolithic Architecture)
这是最早的架构方式:整个系统只有一份代码,所有功能都在一起,比如用户管理、订单系统、支付系统等都放在同一个项目里。
优点:简单易懂、部署方便
缺点:难以维护、扩展性差
示例代码:一个简单的 Node.js 单体服务
新建一个文件夹叫 monolith-app,在里面创建一个 server.js 文件:
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('欢迎访问我的单体后端服务!\n');
}).listen(3000, () => {
console.log('服务运行在 http://localhost:3000/');
});
运行这个服务:
node server.js
然后打开浏览器访问 http://localhost:3000/,你会看到一句话:“欢迎访问我的单体后端服务!”
这就是最原始的后端架构,非常简单直接。
二、微服务架构(Microservices Architecture)
当业务越来越复杂时,单体架构会变得臃肿。于是人们提出了“微服务架构”:把每个功能拆分成独立的服务,各自负责一部分工作。
例如:
- 用户服务(user-service)
- 商品服务(product-service)
- 支付服务(payment-service)
它们之间通过 HTTP 接口通信。
示例代码:创建两个简单的微服务
我们用两个 Node.js 服务来演示微服务之间的调用关系。
1. 创建 user-service(运行在 3001)
新建 user-service.js:
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify({ id: 1, name: "小明" }));
}).listen(3001, () => {
console.log('用户服务运行在 http://localhost:3001/');
});

2. 创建 order-service(运行在 3002),调用 user-service 获取用户信息
新建 order-service.js:
const http = require('http');
const axios = require('axios');
http.createServer(async (req, res) => {
const response = await axios.get('http://localhost:3001');
const user = response.data;
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(`当前用户:${user.name} 正在查看订单\n`);
}).listen(3002, () => {
console.log('订单服务运行在 http://localhost:3002/');
});
先运行 user-service.js,再运行 order-service.js,访问 http://localhost:3002/,你会看到输出:
当前用户:小明 正在查看订单
这就实现了两个微服务之间的基本通信。
三、云原生架构(Cloud Native Architecture)
随着云计算的发展,后端架构又进一步升级为“云原生”。它强调高可用、弹性伸缩、自动化部署等能力。
主要特征包括:
- 使用容器(如 Docker)
- 使用编排系统(如 Kubernetes)
- 使用 DevOps 流程
我们目前只介绍它的核心思想,后续学习中我们会更深入。
实战项目:构建一个多服务后端应用
我们来动手做一个完整的小项目:一个包含用户服务和商品服务的微服务系统。
项目结构:
my-project/
├── product-service/ # 商品服务
│ ├── index.js
├── user-service/ # 用户服务
│ ├── index.js
├── package.json
第一步:创建 package.json
在 my-project 目录下执行:
npm init -y
第二步:创建用户服务
在 user-service/index.js 中写入:
const express = require('express');
app = express();
app.get('/user', (req, res) => {
res.json({ id: 1, name: "用户A", role: "VIP" });
});
app.listen(3001, () => {
console.log("用户服务运行于 3001");
});
安装依赖:
npm install express
运行:
node user-service/index.js
访问 http://localhost:3001/user,你会看到用户信息。
第三步:创建商品服务并调用用户服务
在 product-service/index.js 写入:
const express = require('express');
const axios = require('axios');
app = express();
app.get('/product/:id', async (req, res) => {
const userId = req.query.user_id || 1;
const userRes = await axios.get(`http://localhost:3001/user`);
const product = { id: req.params.id, name: "iPhone 15", price: 6999 };
res.json({
product,
user: userRes.data
});
});
app.listen(3002, () => {
console.log("商品服务运行于 3002");
});
安装依赖:
npm install express axios
运行服务:
node product-service/index.js
访问 http://localhost:3002/product/1?user_id=1,你将看到完整的商品和用户信息。
常见问题解答(FAQ)
Q1:为什么我不能同时运行多个服务?
A:只要监听不同的端口号就可以。如上面的例子,一个跑在 3001,一个跑在 3002,互不冲突。
Q2:我可以不用 Node.js 吗?
A:当然可以,只是本教程为新手友好起见选择了 JavaScript。你可以用 Python(Flask)、Go、Java(Spring Boot)等实现相同功能。
Q3:微服务之间怎么传数据?
A:常用方法是用 RESTful API(如上面的 GET 请求)或者 gRPC,还可以使用消息队列(如 RabbitMQ、Kafka)异步通信。
学习建议:下一步该做什么?
恭喜你完成了从单体到微服务的入门!
接下来你可以继续学习以下几个方向:
- 学习 Docker,了解如何打包服务
- 使用 Kubernetes(简称 K8s)编排容器
- 学习 CI/CD 自动化部署流程
- 深入研究 API 网关(API Gateway)
- 了解服务发现与注册机制(如 Etcd、Consul)
如果你对这些名词还很陌生,别担心,每一步都有对应的开源工具和社区支持,一步步来,就一定能做到!
总结
本文带你走过了后端架构的发展路径:
- 从最简单的单体服务开始
- 到分层的微服务架构
- 最后理解了云原生架构的基本理念
通过实际编码练习,你已经初步掌握了搭建多服务系统的能力。相信你现在已经不再觉得“后端”是一件遥远的事了。坚持下去,未来的你一定会感谢现在努力的自己!
如需配套代码示例、练习项目模板,请留言索取。祝你在后端之路上越走越远!🚀

评论 0