认识微服务

认识微服务

一、单体架构

整个项目中所有功能模块都在一个工程中开发;项目部署时需要对所有模块一起编译、打包;项目的架构设计、开发模式都非常简单。

优点:上手快,部署、运维方便,适合小型项目

缺点:团队协作成本高,系统发布效率低,系统可用性差

二、什么是微服务?

微服务是一种 架构风格(Architectural Style),它将一个庞大复杂的单体系统拆分为若干个小型服务模块,每个服务模块聚焦于特定的业务功能,并可以独立开发、部署、运行和扩展。

在微服务架构中:

  • 每个服务是自治的(独立运行,不依赖同进程其他服务);
  • 每个服务可以由不同的团队 使用不同的技术栈开发;
  • 服务间通过轻量级通信协议(如HTTP/REST、gRPC、消息队列)交互。

三、为什么选择微服务?

  1. 解决单体架构的痛点
  • 体积庞大、耦合严重,维护困难;
  • 部署频率低,任何小改动都需要整体打包上线;
  • 缺乏弹性,系统某一部分高负载时无法单独扩容。
  1. 提升敏捷开发与交付效率
  • 不同服务可由不同团队并行开发,提高开发效率;
  • 独立部署,提高上线频率,支持快速迭代;
  • 故障隔离,一个服务挂掉不影响整体系统。

四、微服务的核心特征

特征 说明
独立部署 每个服务都可以单独部署上线
独立数据库 每个服务拥有自己的数据存储,不共享数据库
服务自治 服务间松耦合,内部逻辑对外不可见
小而专注 每个服务聚焦某一业务功能
技术异构性支持 不同服务可以使用不同的语言和技术实现
自动化部署与监控 强调 DevOps、自动化测试、日志与链路监控

五、微服务常见技术栈

  • 服务注册与发现 :Eureka、Consul、Nacos
  • 配置中心:Spring Cloud Config、Apollo
  • 服务网关 :Spring Cloud Gateway、Kong、Nginx
  • 通信方式:HTTP REST、gRPC、RabbitMQ、Kafka
  • 服务熔断与限流 :Hystrix(已过时)、Sentinel、Resilience4j
  • 容器化与部署:Docker、Kubernetes(K8s)
  • 监控链路追踪:Prometheus + Grafana、Zipkin、Sleuth、SkyWalking

六、微服务带来的挑战

  • 服务间通信复杂:网络调用远不如本地调用稳定;
  • 数据一致性问题:跨服务事务需要用最终一致性来解决;
  • 部署与运维压力大:多个服务需要统一配置、监控、日志追踪;
  • 测试复杂性上升:集成测试比单体更困难;
  • 人员能力要求提高:需要理解分布式系统、容器、CI/CD 等一整套体系。

七、微服务 vs 单体架构

对比项 单体架构 微服务架构
架构复杂度 简单,开发和部署较方便 高,需要组件和治理机制
模块解耦 强耦合 松耦合
技术选型 技术统一 可多样化
扩展能力 整体扩展 按服务单独扩展
部署方式 整体打包部署 服务独立部署
运维要求 简单 要求 DevOps 能力较高

八、是否应该使用微服务?

适合使用微服务的场景:

  • 系统足够复杂,有明确的业务模块边界;
  • 团队组织清晰,有多个小团队协同开发;
  • 有 DevOps 能力支持自动化部署、监控与测试;
  • 系统对可用性与扩展性要求较高。

不适合使用微服务的场景:

  • 项目较小,模块划分不明确;
  • 团队经验不足;
  • 上线周期不紧,系统变更不频繁。
相关推荐
m0_587383003 分钟前
无人自助拼豆系统核心功能开发与部署落地全流程实战指南
java·经验分享·后端·struts·架构
独孤九剑打醒他4 分钟前
【原创开源·航空终极篇】氢能航空动力升级:双燃料掺氢、富氧补气与露天储氢安全模型
前端·架构·开源·硬件工程·能源
ZXCher1 小时前
危废库应急响应系统设计:越华环保集团泄漏/火灾场景下的自动化与硬件联动架构
大数据·架构·自动化
深入云栈1 小时前
Netty 4.2.x 源码深度解析 (十九):ChannelPool 连接池 —— 连接复用与资源管理
java·后端·架构
衡石科技2 小时前
衡石 BI PaaS:面向 Agent 的分析底座
云原生·云计算·paas
feiyu_gao2 小时前
Spec→实现→结晶:一种让 AI 项目不失控的纪律框架
架构·aigc·vibecoding
马可家的菠萝2 小时前
你的微信“文件传输助手”,是不是已经成了第二个网盘?
前端·后端·架构
Allstar_433 小时前
制造业研发管理数字化:从 Excel 到专业 APQP 系统的架构选型思考
架构·excel
阿里云云原生3 小时前
阿里云 STAROps 全新升级,让 AI 持续推进问题闭环解决
云原生
ting94520003 小时前
Monid 深度技术解析:面向 AI 智能体的统一工具路由网关实现与工程实践
人工智能·架构