什么是微服务

微服务

什么是微服务架构

  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. 学习成本高
相关推荐
白-胖-子4 小时前
深入剖析大模型在文本生成式 AI 产品架构中的核心地位
人工智能·架构
武子康4 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
Pomelo_刘金8 小时前
用 DDD 把「闹钟」需求一点点捏出来
架构·rust·领域驱动设计
Pomelo_刘金8 小时前
Clean Architecture 整洁架构:借一只闹钟讲明白「整洁架构」的来龙去脉
后端·架构·rust
碳酸的唐8 小时前
Inception网络架构:深度学习视觉模型的里程碑
网络·深度学习·架构
zoulingzhi_yjs9 小时前
haproxy配置详解
linux·云原生
qq_5298353510 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
五点六六六12 小时前
前端常见的性能指标采集
前端·性能优化·架构
程序员小羊!13 小时前
Zookeeper 3.6.3【详细技术讲解】整
分布式·zookeeper·云原生
平凡之大路14 小时前
【企业架构】TOGAF概念之二
架构·togaf·企业架构