微服务架构【SpringBoot+SpringCloud+VUE】一 || 微服务简介

1、什么是微服务

在开发项目之前,我们有必要了解一下,什么是微服务?简单来说:微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

2、Spring Cloud是什么

Spring Cloud是一个微服务框架的规范,并不是任何具体的框架。而Spring Cloud Netflix 和 Spring Cloud Alibaba 是 Spring Cloud 的实现方案。本项目中我们将对两种实现方案中的组件进行实战开发。Spring Cloud Netflix(https://spring.io/projects/spring-cloud/) 和 Spring Cloud Alibaba(https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md) 的最新动态可到相应官网进行了解。

3、服务注册中心

服务注册中心是微服务的另外一个必备组件,用来协调服务提供者和调用者的相互发现。
Spring Cloud Netflix默认的注册中心是Eureka,而Spring Cloud Alibaba推荐使用的注册中心是Nacos。当然,还有很多组件都实现了微服务注册中心的功能。比较常用的有consul、eureka、nacos。

下面对这几个组件进行一个比较:

配置中心

  • eureka 不支持
  • consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新
  • nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新

注册中心

  • eureka

  • 应用内/外:直接集成到应用中,依赖于应用自身完成服务的注册与发现。

  • ACP原则:遵循AP(可用性+分离容忍)原则,有较强的可用性,服务注册快,但牺牲了一定的一致性。

  • 版本迭代:目前已经不进行升级。

  • 集成支持:只支持SpringCloud集成。

  • 访问协议:HTTP。

  • 雪崩保护:支持雪崩保护。

  • 上手:容易。

  • consul

  • 应用内/外:属于外部应用,侵入性小。

  • ACP原则:遵循CP原则(一致性+分离容忍) 服务注册稍慢,由于其一致性导致了在Leader挂掉时重新选举期间真个consul不可用。

  • 版本迭代:目前仍然进行版本迭代

  • 集成支持:支持SpringCloud K8S集成。

  • 访问协议:HTTP/DNS。

  • 雪崩保护:不支持雪崩保护。

  • 上手:复杂。

  • nacos

  • 应用内/外:属于外部应用,侵入性小。

  • ACP原则:通知遵循CP原则(一致性+分离容忍) 和AP原则(可用性+分离容忍)。

  • 版本迭代:目前仍然进行版本迭代。

  • 集成支持:支持Dubbo 、SpringCloud、K8S集成。

  • 访问协议:HTTP/动态DNS/UDP。

  • 雪崩保护:支持雪崩保护。

  • 上手:极易,中文文档,案例,社区活跃。

本教程重点学习Spring Cloud Alibaba,推荐使用Spring Cloud Alibaba的生态组件。在之前的项目中,使用过Eureka作为注册中心,而配置中心需要使用其他解决方案,比如Apollo。而Nacos实现了配置中心和注册中心的功能,在使用起来比较方便。下面了解一下官方对Nacos的介绍:

Nacos 能够快速实现动态服务发现、服务配置、服务元数据及流量管理。包括服务发现和服务健康监测、动态配置服务、动态 DNS 服务、服务及其元数据管理。Nacos 无缝支持 Spring Cloud,为 Spring Cloud 用户其提供更简便的配置中心和注册中心的解决方案。

4、学习交流QQ群【883210148】

alt QQ群

5、关注微信公众号,免费获取文档及资源

alt 微信公众号

原文地址:https://www.cnblogs.com/kevin-ying/p/12381655.html