微服务技术学习(Day 1)

44 阅读1分钟

单体架构(不适合大型项目)

单体架构是指将业务的所有功能集中在一个项目中开发,打包成一个包部署

优点

  • 架构简单
  • 部署成本低

缺点

  • 耦合度高

分布式架构(适合大型项目)

分布式架构是指根据业务功能对系统进行拆分,每个业务模块作为独立项目进行开发,称为一个服务

优点

  • 降低服务耦合
  • 有利于服务升级拓展

问题

服务拆分粒度,服务接口,远程调用,服务健康状态

微服务

微服务是一种分布式架构方案,是分布式架构的最佳实现服务

特征

  • 单一职责 -- 每个服务对应一个业务功能,单一职责,避免重复开发

  • 面向服务 -- 对外暴露业务接口

  • 自治 -- 团队独立、技术独立、数据独立、部署独立

  • 隔离性强 -- 服务做好隔离、容错,避免级联问题

  • 高内聚 低耦合

微服务技术对比

image.png

Spring Cloud

image.png

服务拆分及远程调用

服务拆分注意事项

  • 不同微服务,不要重复开发相同业务
  • 微服务数据独立,不要访问其他微服务的数据库
  • 微服务可以将自己的业务暴露为接口,供其他微服务调用

微服务远程调用

  1. 注册RestTemplate
@Bean
public RestTemplate restTemplate(){
    return new RestTemplate();
    }
  1. 调用RestTemplate发送请求(Restful 风格)