系统架构
单体应用架构
特点:所有功能集中在一个应用中(如传统的 Spring Boot WAR 包)。
适用场景:小型项目、快速验证阶段。
优缺点:
✅ 开发简单,部署方便。
❌ 扩展性差,技术栈耦合。
集群应用架构
实现:
无状态服务水平扩展
通过负载均衡(Nginx/LVS)将流量分发到多个单体实例。
Session共享:Redis存储用户会话。
数据库主从分离
主库写,从库读(MySQL Replication)。
优缺点:
✅ 提高并发能力,避免应用层单点故障
❌ 代码仍为单体,维护复杂,数据主库压力大
垂直应用架构
演进动机
解决集群架构中业务耦合问题,按功能拆分独立应用。
实现方式
垂直拆分:将单体按业务线拆分为多个独立应用(如电商拆分为用户中心、订单系统、商品系统)。
每个应用有自己的数据库,避免全表扫描压力。
优缺点
✅ 业务解耦,数据库压力分散
❌ 重复构建,跨系统调用复杂
微服务架构
微服务架构是服务化思想的最佳时间方向和服务治理不断完善和交付链路逐步成熟后的自然产物。
微服务
概念名词
服务治理
服务治理就是进行服务的自动化管理,其核心是服务的自动注册与发现。
服务注册:服务实例将自身服务信息注册到注册中心。
服务发现:服务实例通过注册中心获取到其中的服务实例的信息,通过这些信息去请求他们提供服务。
服务剔除:服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到。
服务调用
服务调用是指一个软件系统通过某种通信协议请求另一个软件系统提供特定服务的过程。
服务网关
随着微服务的不断增多,不同的微服务一般会有不同的网络地址,外部客户端可能需要调用多个服务接口才能完成一个业务需求,如果让客户端直接与各个服务之间进行通信就会出现一系列的问题(跨域,认证)。
网关是一种在微服务架构中使用的服务器端组件,用于管理请求的转发和路由。API网关将API调用统一接入API网关层,由网关层统一接入和输出。
一个网关的基本功能有:统一接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。
服务容错
服务容错是确保系统在部分服务出现故障时仍能继续运行的能力。
链路追踪
微服务调用

在这种情况下,订单订单微服务就是一个服务消费者, 商品微服务就是一个服务提供者。
实现方式
@RestController
@RequestMapping("/order")
public class OrderController{
@Autowired
OrderService orderService;
@Autowired
RestTemplate restTemplate;
@RequestMapping("/create/{pid}/{uid}/{num}")
public Order createOrder(@PathVariable("pid") int pid, @PathVariable("uid")int uid, @PathVariable("num") int num){
//核心代码
Product p = restTemplate.getForObject("http://127.0.0.1:8091/product/get/"+pid, Product.class);
User u = restTemplate.getForObject("http://127.0.0.1:8081/user/get/"+uid, User.class);
Order order= null;
if(p!=null){
if(p.getStock()>=num){
if(u!=null){
order = orderService.saveorder(pid,uid,num);
}
}
}
return order;
}
}