什么是微服务

微服务

什么是微服务架构

  1. 微服务是一种架构模式,它提倡将原来独立的单体应用,拆分成多个小型服务。
  2. 这些小型服务各自独立运行,服务与服务间的通信采用轻量级通信机制(一般基于HTTP协议的RESTful API),达到互相协调、互相配合的目的。
  3. 被拆分后的服务都围绕着具体的业务进行构建,每个服务都能独立地进行开发、部署、扩展。
  4. 由于相互独立且采用轻量通信机制,因此各个小型服务能够使用不同的语言开发 ,也可以使用不同的数据存储技术

微服务的特点

  1. 服务拆分
  2. 独立运行
  3. 轻量级通信
  4. 技术异构

为什么要使用微服务

  1. 业务规模的增长
  2. 敏捷开发与快速迭代
  3. 技术储备完善
  4. 微服务架构生态的完善

架构演进

  1. 单机架构
  2. Tomcat与数据库分开部署
  3. 引入本地缓存和分布式缓存:解决数据库的瓶颈
  4. 引入反向代理实现负载均衡,解决tomcat的瓶颈
  5. 数据库读写分离,解决数据库的瓶颈,采用主从架构
  6. 数据库按业务分库,解决用户热点访问,把热点库多加节点
  7. 把大表拆分为小表,解决比如每秒有5000条数据产生,但是单台数据扛不住,对写进行分散
  8. 使用lvs或F5来使多个Nginx负载均衡,解决系统压力到来,单台nginx的性能问题,lvs解决几十万的访问量
  9. 通过DNS论询实现机房的负载均衡,解决当lvs访问压力达到上百万时候,可以横向扩展机房
  10. 引入NoSQL数据库和搜索引擎等技术,(es、mongoDB、HDFS)
  11. 大应用拆分为小应用,解决整合了过多的中间件组件,业务变得复杂
  12. 复用的功能抽离成微服务,服务之间通过HTTP协议进行访问,dubbo,"分布式架构"或者"服务化"

服务架构的演进

  • 在微服务架构这个概念变得流行之前,技术架构也在不断优化和演进
  • 在微服务架构这个概念"火"起来之前,人们会用"分布式服务"或"服务化"来概括这种将大系统拆分为小系统的架构模式
  • 微服务架构只是众多技术架构中的一个,适合自身业务系统和技术团队的才是最好的架构

微服务架构的优缺点

微服务的优点

  1. 更易于开发和维护,开发者只针对一个服务,单独的服务开发和维护更简单
  2. 快速迭代+灵活,单机项目有支付、商品项目全在一块,随便哪块分支、冲突、测试、升级很难,服务之间耦合度变低,随便哪个服务出问题也不会影响到全局
  3. 系统伸缩性增强,比如:商品服务访问量最多,增加商品服务的服务器
  4. 技术选型灵活,根据业务场景和团队特点技术栈选型
  5. 错误隔离,当前商品服务down机了,不会影响订单服务,局部的错误只影响局部,不会影响全局

微服务的缺点

  1. 落地一个微服务架构项目比较复杂
  2. 服务依赖和调用链路更复杂
  3. 数据一致性问题
  4. 问题排查的链路加长
  5. 学习成本高
相关推荐
2501_941149501 小时前
探索云原生架构:从容器到微服务的全面升级
微服务·云原生·架构
喵了几个咪1 小时前
Kratos微服务轻松对接EFK日志系统
微服务·云原生·架构
Tony Bai1 小时前
Go 在 Web3 的统治力:2025 年架构与生态综述
开发语言·后端·架构·golang·web3
玖日大大2 小时前
Grok 大模型全景解析:从架构创新到产业实践
架构
q***7483 小时前
数据库高安全—openGauss安全整体架构&安全认证
数据库·安全·架构
喜欢吃豆3 小时前
LangChain v1.0 技术研究报告:架构范式向智能体中间件与图运行时的演进
中间件·架构·langchain·大模型
q***76666 小时前
显卡(Graphics Processing Unit,GPU)架构详细解读
大数据·网络·架构
小坏讲微服务7 小时前
Docker-compose搭建Docker Hub镜像仓库整合SpringBootCloud
运维·分布式·spring cloud·docker·云原生·容器·eureka
Serverless社区7 小时前
【本不该故障系列】从 runC 到 runD:SAE 如何化解安全泄露风险
阿里云·云原生·serverless
美狐美颜SDK开放平台7 小时前
从0到1开发直播美颜SDK:算法架构、模型部署与跨端适配指南
人工智能·架构·美颜sdk·直播美颜sdk·第三方美颜sdk·美狐美颜sdk