Spring Cloud微服务架构学习-2

目录

    • 前言
      • 1、Eureka工作原理
      • 2、服务提供者与服务消费者
    • 一、注册中心实验
      • 1.新建第一中心模块
      • 2.修改pom.xml
      • 3.添加资源文件
      • 4.创建启动类
      • 5.启动
    • 二、服务提供者实验
      • 1.新建提供者模块
      • 2.修改pom.xml
      • 3.添加资源文件
      • 4.创建启动类
      • 5.启动
    • 三、服务消费者实验
      • 1.新建消费者模块
      • 2.修改pom.xml
      • 3.添加资源文件
      • 4.创建启动类
      • 5.启动
    • 四、注册中心集群实验
      • 1. 修改hosts文件
      • 2. 新建第二中心模块
        • 1).修改pom.xml
        • 2).添加资源文件
        • 3).创建启动类
      • 3. 修改第一注册中心配置
      • 4. 新建一个服务提供者
        • 1).修改pom.xml
        • 2).添加资源文件
        • 3).创建启动类
      • 5.修改eureka-consumer
      • 6.运行整个集群
    • 五、总结

前言

1、Eureka工作原理

 Spring Cloud框架下的服务发现Eureka包含两个组件,分别是:Eureka Server与Eureka Client。

Eureka Server:
Eureka Server,也称为服务注册中心。各个服务启动后,会在Eureka Server中进行注册,这样Eureka Server的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

Eureka Client:
Eureka Client也称为服务(服务实例)。作为一个Java客户端,用于简化与Eureka Server的交互。Eureka Client内置一个使用轮询负载算法的负载均衡器。服务启动后,Eureka Client将会向Eureka Server发送心跳更新服务,如果Eureka Server在多个心跳周期内没有接收到某个服务的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。

Spring Cloud微服务架构学习-2_第1张图片
Eureka Client注册在Eureka Server,Eureka Client中的服务Service是通过REST调用的。Eureka Client还具有缓存功能,它能够从Eureka Server查询当前注册的服务信息并缓存到本地,这样即使Eureka Server宕机,Eureka Client依然可以利用缓存中的信息调用服务.

2、服务提供者与服务消费者

Eureka Client存在两种角色,分别是服务提供者和服务消费者。

服务提供者:
服务提供者( Eureka Client )启动后,会通过REST请求将自己注册在Eureka Server,并维护一个心跳(默认30秒发送一次心跳)进行服务续约,告诉Eureka Server“我还活着”,防止Eureka Server将该服务从服务列表剔除。

服务消费者:
用于获取Eureka Server注册的服务清单,并且该服务清单默认每隔30秒更新一次。服务消费者获取到服务清单后,能够根据自己的需求决定调用哪个服务,默认采用轮询方式调用,从而实现Eureka Client的负载均衡。

Spring Cloud微服务架构学习-2_第2张图片
服务消费者是如何调用服务提供者的?
服务提供者和服务消费者都属于Eureka Client,它们都会将自己的信息通过REST API形式提交给Eureka Server。服务消费者注册后,还会获取一份服务注册列表,该列表包含了所有向Eureka Server注册的服务信息。获取到服务注册信息后,服务消费者就会根据服务提供者的IP地址,通过HTTP远程调用服务提供者的服务。

一、注册中心实验

1.新建第一中心模块

在父级目录下新建一个模块,模块命名为lesson2-eureka-server
在这里插入图片描述

2.修改pom.xml

打开新建模块的pom.xml,注意是新建!!!
在pom文件中添加的Eureka Server依赖

Spring Cloud微服务架构学习-2_第3张图片

<dependencies>
  <dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
   dependency>
dependencies>

3.添加资源文件

在resources文件夹下添加application.yml
Spring Cloud微服务架构学习-2_第4张图片
application.yml配置文件内容如下,请注意缩进!!!

Spring Cloud微服务架构学习-2_第5张图片

4.创建启动类

新建一个EurekaServer包

Spring Cloud微服务架构学习-2_第6张图片
在包下面创建启动类EurekaServerApplication
Spring Cloud微服务架构学习-2_第7张图片
在EurekaServerApplication.java文件中写上如下代码
(在项目启动类EurekaServerApplication上添加
@EnableEurekaServer注解开启Eureka Server功 能。)
Spring Cloud微服务架构学习-2_第8张图片

5.启动

点击三角形运行

Spring Cloud微服务架构学习-2_第9张图片
打开浏览器,输入127.0.0.1:7000,出现以下说明成功启动了eurekaserver

Spring Cloud微服务架构学习-2_第10张图片

二、服务提供者实验

1.新建提供者模块

在父级目录下新建一个模块,模块命名为lesson02-eureka-provider。
Spring Cloud微服务架构学习-2_第11张图片
Spring Cloud微服务架构学习-2_第12张图片

2.修改pom.xml

在pom文件中添加Eureka Client、Web依赖如下:

<dependencies>
   <dependency>
      <groupId>org.springframework.cloudgroupId>
      <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
   dependency>
   <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-webartifactId>
       <version>2.1.7.RELEASEversion>
   dependency>
dependencies>

Spring Cloud微服务架构学习-2_第13张图片

3.添加资源文件

在resourses文件夹下创建application.yml配置文件。
Spring Cloud微服务架构学习-2_第14张图片
在配置文件中填写如下配置,注意缩进!!!
Spring Cloud微服务架构学习-2_第15张图片

4.创建启动类

在java文件夹下创建一个EurekaProvider包
Spring Cloud微服务架构学习-2_第16张图片
在EurekaProvider包内创建EurekaProviderApplication启动类。
Spring Cloud微服务架构学习-2_第17张图片
在EurekaProviderApplication.java下填写代码:
(在项目启动类EurekaProviderApplication上添加
@EnableEurekaClient注解开启Eureka Client功能。)
Spring Cloud微服务架构学习-2_第18张图片

5.启动

确保实验一中的EurekaServerApplication在运行。

Spring Cloud微服务架构学习-2_第19张图片
启动本次实验的服务

Spring Cloud微服务架构学习-2_第20张图片
在浏览器上输入http://127.0.0.1:7000/,出现以下界面表示注册成功。
Spring Cloud微服务架构学习-2_第21张图片

三、服务消费者实验

1.新建消费者模块

在父级目录下新建一个模块,模块命名为lesson02-eureka-consumer。
Spring Cloud微服务架构学习-2_第22张图片
Spring Cloud微服务架构学习-2_第23张图片

2.修改pom.xml

在pom文件中添加的Eureka Client、Web依赖如下:

<dependencies>
   <dependency>
      <groupId>org.springframework.cloudgroupId>
       <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
   dependency>
   <dependency>
       <groupId>org.springframework.bootgroupId>
       <artifactId>spring-boot-starter-webartifactId>
       <version>2.1.7.RELEASEversion>
    dependency>
dependencies>

Spring Cloud微服务架构学习-2_第24张图片

3.添加资源文件

在resourses文件夹下创建application.yml配置文件。
Spring Cloud微服务架构学习-2_第25张图片
在配置文件中填写如下配置,注意缩进!!!
Spring Cloud微服务架构学习-2_第26张图片

4.创建启动类

在java文件夹下创建一个EurekaConsumer包
Spring Cloud微服务架构学习-2_第27张图片
在EurekaConsumer包内创建EurekaConsumerApplication启动类。
Spring Cloud微服务架构学习-2_第28张图片
在EurekaConsumerApplication.java下填写代码:

Spring Cloud微服务架构学习-2_第29张图片

5.启动

确保实验一、二中的EurekaServerApplication和EurekaProviderApplication在运行。
Spring Cloud微服务架构学习-2_第30张图片启动本次实验的服务
Spring Cloud微服务架构学习-2_第31张图片
.在浏览器上输入http://127.0.0.1:7000/,出现以下界面表示注册成功。
Spring Cloud微服务架构学习-2_第32张图片

四、注册中心集群实验

1. 修改hosts文件

因为是在单台电脑上建立集群,所以需要修改hosts文件将单台电脑模拟成两台机器。
打开C:\Windows\System32\drivers\etc\hosts,文件,在末尾添加如下内容:
Spring Cloud微服务架构学习-2_第33张图片
注意:有些电脑这个地方不允许修改,则可以将该文件拷贝到桌面,在桌面改完后在拷贝回来进行覆盖。

2. 新建第二中心模块

在父级目录下再创建一个注册中心lesson02-eureka-server-another模块
在这里插入图片描述
Spring Cloud微服务架构学习-2_第34张图片

1).修改pom.xml

第二注册中心依赖
在pom文件中添加的Eureka Server依赖如下:

<dependencies>
 <dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
 dependency>
dependencies>

Spring Cloud微服务架构学习-2_第35张图片

2).添加资源文件

在resources文件夹下添加application.yml,并添加如下配置,注意缩进!
Spring Cloud微服务架构学习-2_第36张图片
Spring Cloud微服务架构学习-2_第37张图片

3).创建启动类

新建一个EurekaServerAnother包
Spring Cloud微服务架构学习-2_第38张图片
创建一个EurekaServerAnotherApplication启动类
Spring Cloud微服务架构学习-2_第39张图片
在EurekaServerAnotherApplication.java下添加代码:
Spring Cloud微服务架构学习-2_第40张图片

3. 修改第一注册中心配置

将实验一 eureka-server的application.yml进行修改:
Spring Cloud微服务架构学习-2_第41张图片

4. 新建一个服务提供者

在父级目录下在创建一个服务提供者lesson02-eureka-provider-another
Spring Cloud微服务架构学习-2_第42张图片
Spring Cloud微服务架构学习-2_第43张图片

1).修改pom.xml

添加pom依赖:

<dependencies>
   <dependency>
     <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    dependency>
    <dependency>
       <groupId>org.springframework.bootgroupId>
         <artifactId>spring-boot-starter-webartifactId>
         <version>2.1.7.RELEASEversion>
      dependency>
 dependencies>

Spring Cloud微服务架构学习-2_第44张图片

2).添加资源文件

在resources文件夹下添加application.yml,并添加如下配置,注意缩进!
Spring Cloud微服务架构学习-2_第45张图片
Spring Cloud微服务架构学习-2_第46张图片

3).创建启动类

新建一个EurekaProviderAnother包
Spring Cloud微服务架构学习-2_第47张图片
新建一个EurekaProviderAnotherApplication启动类:
在这里插入图片描述
在EurekaProviderAnotherApplication.java中写上代码;
Spring Cloud微服务架构学习-2_第48张图片

5.修改eureka-consumer

修改eureka-consumer中的application.yml,修改如下:
Spring Cloud微服务架构学习-2_第49张图片

6.运行整个集群

依次运行eureka-server、eureka-server-another、eureka-provider、eureka-provider-another、eureka-consumer 全部运行成功后打开浏览器,打开两个页面,分别在地址栏输入: http://127.0.0.1:7000/ 和 http://127.0.0.1:7009/
两个页面都显示如下所示算成功:
第二注册中心:

Spring Cloud微服务架构学习-2_第50张图片
第一注册中心:
Spring Cloud微服务架构学习-2_第51张图片

五、总结

1.eureka默认使用8673端口(此端口没有应用),所以会一直请求出现超时,因此要写service-url.defaultZone路径进行覆盖。
2.intance:hostname:localhost一定要记得写。
3.基本步骤都有:
创建模块->pom里添加依赖->main里resouce写配置文件->main里java创建包写启动类
4.当有多个注册中心时,例有注册中心1、2、3,
在中心1的service-url.defaultZone要写上中心2,3的路径,
在中心2的service-url.defaultZone要写上中心1,3的路径,
在中心3的service-url.defaultZone要写上中心1,2的路径,
此时注册中心中的服务列表共通。

你可能感兴趣的:(Spring,Cloud,spring,cloud,微服务,架构)