irpas技术客

Spring Cloud微服务架构学习-2_等闲'

irpas 3100

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

前言 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秒)。

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的负载均衡。

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

一、注册中心实验 1.新建第一中心模块

在父级目录下新建一个模块,模块命名为lesson2-eureka-server

2.修改pom.xml

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

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> 3.添加资源文件

在resources文件夹下添加application.yml application.yml配置文件内容如下,请注意缩进!!!

4.创建启动类

新建一个EurekaServer包

在包下面创建启动类EurekaServerApplication 在EurekaServerApplication.java文件中写上如下代码 (在项目启动类EurekaServerApplication上添加 @EnableEurekaServer注解开启Eureka Server功 能。)

5.启动

点击三角形运行

打开浏览器,输入127.0.0.1:7000,出现以下说明成功启动了eurekaserver

二、服务提供者实验 1.新建提供者模块

在父级目录下新建一个模块,模块命名为lesson02-eureka-provider。

2.修改pom.xml

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

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.7.RELEASE</version> </dependency> </dependencies>

3.添加资源文件

在resourses文件夹下创建application.yml配置文件。 在配置文件中填写如下配置,注意缩进!!!

4.创建启动类

在java文件夹下创建一个EurekaProvider包 在EurekaProvider包内创建EurekaProviderApplication启动类。 在EurekaProviderApplication.java下填写代码: (在项目启动类EurekaProviderApplication上添加 @EnableEurekaClient注解开启Eureka Client功能。)

5.启动

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

启动本次实验的服务

在浏览器上输入http://127.0.0.1:7000/,出现以下界面表示注册成功。

三、服务消费者实验 1.新建消费者模块

在父级目录下新建一个模块,模块命名为lesson02-eureka-consumer。

2.修改pom.xml

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

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.7.RELEASE</version> </dependency> </dependencies>

3.添加资源文件

在resourses文件夹下创建application.yml配置文件。 在配置文件中填写如下配置,注意缩进!!!

4.创建启动类

在java文件夹下创建一个EurekaConsumer包 在EurekaConsumer包内创建EurekaConsumerApplication启动类。 在EurekaConsumerApplication.java下填写代码:

5.启动

确保实验一、二中的EurekaServerApplication和EurekaProviderApplication在运行。 启动本次实验的服务 .在浏览器上输入http://127.0.0.1:7000/,出现以下界面表示注册成功。

四、注册中心集群实验 1. 修改hosts文件

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

2. 新建第二中心模块

在父级目录下再创建一个注册中心lesson02-eureka-server-another模块

1).修改pom.xml

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

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies>

2).添加资源文件

在resources文件夹下添加application.yml,并添加如下配置,注意缩进!

3).创建启动类

新建一个EurekaServerAnother包 创建一个EurekaServerAnotherApplication启动类 在EurekaServerAnotherApplication.java下添加代码:

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

将实验一 eureka-server的application.yml进行修改:

4. 新建一个服务提供者

在父级目录下在创建一个服务提供者lesson02-eureka-provider-another

1).修改pom.xml

添加pom依赖:

<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.7.RELEASE</version> </dependency> </dependencies>

2).添加资源文件

在resources文件夹下添加application.yml,并添加如下配置,注意缩进!

3).创建启动类

新建一个EurekaProviderAnother包 新建一个EurekaProviderAnotherApplication启动类: 在EurekaProviderAnotherApplication.java中写上代码;

5.修改eureka-consumer

修改eureka-consumer中的application.yml,修改如下:

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/ 两个页面都显示如下所示算成功: 第二注册中心:

第一注册中心:

五、总结

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的路径, 此时注册中心中的服务列表共通。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Spring #Cloud微服务架构学习2 #修改hosts文件2