一.背景
传统项目大多是单体架构,用户、订单、商品、消息、搜索等所有业务代码全部写在一个项目里。缺点很明显:代码臃肿、耦合严重,修改一小段功能就要整体重启,一个模块出问题,整个系统直接崩溃,后期维护和扩容非常困难。
微服务 就是把一个大型单体项目,按业务模块拆分,拆分成多个独立、轻量化的小型服务:
用户服务、订单服务、商品服务、消息队列服务、搜索服务等每个服务独立开发、独立部署、独立运行、独立扩容,服务之间互不影响,按需迭代、按需升级。
二.微服务核心六大核心概念
1. 服务注册
每个微服务启动后,主动将自身服务名称、IP、端口信息,上报到注册中心(Etcd/Nacos),告诉全局:我已上线,可以被调用。
2. 服务发现
当 A 服务需要调用 B 服务时,先从注册中心拉取 B 服务的在线地址列表,自动获取可用服务节点,实现服务寻址。
3. 远程 RPC 调用
拆分后的服务不在同一个程序内,无法直接调用。通过 gRPC/RPC 实现跨服务远程通信,完成数据交互、业务联动,是微服务协作的核心。
4. 配置中心(进阶)
统一管理所有微服务的配置信息(数据库地址、缓存地址、密钥等)。无需修改每个服务本地配置,集中统一管理、动态生效,适合集群、多服务项目。
5. 负载均衡
同一个服务可部署多实例集群,通过负载均衡策略(轮询、随机等)分发请求。避免单节点压力过大,提升系统并发能力与稳定性。
6. 服务治理(进阶)
用于保障分布式系统稳定运行,核心包含:
- 限流:限制高频请求,防止系统被压垮
- 熔断:依赖服务故障时自动断开,避免连锁崩溃
- 降级:流量高峰关闭非核心功能,保障核心业务可用
三、基础微服务 & 进阶微服务区别
-
基础版微服务(中小型项目必备) 核心三件套:服务注册 + 服务发现 + RPC 远程调用依赖注册中心即可快速搭建,满足大部分商城、后台业务开发。
-
进阶版微服务(大型分布式项目) 在基础之上,额外搭配:配置中心、API 网关、负载均衡、熔断限流、服务监控,适配高并发、分布式、集群部署场景。
四、微服务优势
- 业务解耦,单个服务修改、重启不影响整体系统
- 拆分清晰,各司其职,代码易维护、易阅读
- 按需扩容,高压力服务单独加机器,节约成本
- 技术异构,不同服务可灵活选择适配技术栈