概述
毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。
实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。
一
首先了解五大核心组件(1)-Eureka。
主要作用:多个模块存在注册中心上(Eureka-Server),主要用于注册,发现多个IP,可以理解为一个 集合,Map<String,List<地址>>!
首先,创建简单测试,根据代码实现:
(创建一个父项目(p2p_parent)maven集成的Spring boot 的 Spring cloud
配置 pom.xml为
4.0.0
<!--一般来说,包名根目录=groupId+artifactId。这个是不允许和别人重复的,
尤其是需要上线的项目。一般公司为了不重复都会注册一个域名(URL用的那种),
这样就肯定不会重复了。但是自己用嘛就随便起一个喜欢易懂的好了。-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mzf</groupId>
<artifactId>p2p_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!--版本-->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId&