SpringCloud

SpringCloud01

 为什么要学习微服务框架知识?

因为互联网发展迅速,业务更新迭代快 微服务符合敏捷开发需求

服 务 网 关(请求路由,负载均衡)

注册中心(拉取或注册服务信息 eureka  nacos)

配置中心(拉取配置信息)

系统监控 链路追踪(zipkin)

SpringCloud_第1张图片

认识微服务

单体架构

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

优点: 架构简单 部署成本低   

缺点: 耦合度高

分布式架构

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

优点: 降低服务耦合 有利于服务升级拓展

缺点 : 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?

  • 服务之间如何调用?

  • 服务的调用关系如何管理?

微服务

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责

  • 自治:团队独立、技术独立、数据独立,独立部署和交付

  • 面向服务:服务提供统一标准的接口,与语言和技术无关

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务其实就是进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。目前国内使用最广泛的微服务框架就是SpringCloud

微服务落地方案 SpringCloud

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。 另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系

认识微服务总结

  • 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统

  • 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝

  • 微服务:一种良好的分布式架构方案

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件

服务拆分和远程调用

任何分布式架构都离不开服务的拆分,微服务也是一样。(远程调用:RestTemplate)

服务拆分原则

提供者与消费者

在服务调用关系中,会有两个不同的角色

服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)

  • 不同微服务,不要重复开发相同业务

  • 微服务数据独立,不要访问其它微服务的数据库

  • 微服务可以将自己的业务暴露为接口,供其它微服务调用

服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)

但是,服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言。

如果服务A调用了服务B,而服务B又调用了服务C,服务B的角色是什么?

  • 对于A调用B的业务而言:A是服务消费者,B是服务提供者

  • 对于B调用C的业务而言:B是服务消费者,C是服务提供者

因此,服务B既可以是服务提供者,也可以是服务消费者。

Eureka注册中心

你可能感兴趣的:(java)