一、单体架构

  • 耦合率高,开发维护困难
  • 扩展困难
  • 容错率低,并发能力差

微服务和传统架构的思考

二、分布式架构

  • 对服务进行抽取,提高代码复用性和系统并发能力
  • 但服务增多,维护较困难(服务地址,服务依赖,服务监控等)

微服务和传统架构的思考

三、微服务

1、优点

  • 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
  • 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。
  • 面向服务:面向服务是说每个服务都要对外暴露服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。
  • 自治:自治是说服务间互相独立,互不干扰
    • 团队独立:每个服务都是一个独立的开发团队,人数不能过多。
    • 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
    • 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动段开发不同接口
    • 数据库分离:每个服务都使用自己的数据源
    • 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护

2、需思考的问题

  • 服务管理
    • 如何自动注册和发现
    • 如何实现状态监管
    • 如何实现动态路由
  • 服务如何实现负载均衡
  • 服务如何解决容灾问题
  • 服务如何实现统一配置

3、对策

  • Eureka:注册中心
  • Zuul:服务网关
  • Ribbon:负载均衡
  • Feign:服务调用
  • Hystix:熔断器

微服务和传统架构的思考

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2022-02-20
  • 2022-01-01
  • 2021-08-30
  • 2021-11-22
  • 2021-04-03
  • 2021-05-01
  • 2022-12-23
  • 2021-11-23
猜你喜欢
  • 2021-06-04
  • 2021-08-12
  • 2021-06-27
  • 2021-12-28
相关资源
相似解决方案