3.2.1 Eureka服务注册与发现机制

无服务注册中心

在这里插入图片描述

Eureka的作用

在这里插入图片描述

服务注册流程

在这里插入图片描述

Eureka核心知识

在这里插入图片描述

服务端如何保存这些信息

在这里插入图片描述

消费者服务发现

在这里插入图片描述

高可用集群

在这里插入图片描述### 心跳和服务剔除机制是什么
在这里插入图片描述

注册中心配置过程

  1. 导入依赖
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
-----
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 在springboot启动类上添加@EnableEurekaServer注解
  2. 在application.properties添加Eureka的相关配置
spring.application.name=eureka-peer
  
server.port=10000

eureka.instance.hostname=dev
eureka.instance.instance-id=dev

eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://localhost:10000/eureka/
//Zone是Eureka提出区域的概念,服务器是分区域部署
//eureka.client.availability-zones.beijing:zone-1	使用方法:将北京设为zone-1
//eureka.client.service-url.zone1=http://localhost:10001/eureka	如果在北京的区域会访问该url

eureka.server.wait-time-in-ms-when-sync-empty=0	//服务等待时间
eureka.server.enable-self-preservation=true	//自我保护机制开启后,服务下线,也不会将其剔除
eureka.server.peer-eureka-nodes-update-interval-ms=1000000	//eureka结点更新频率
----client端
spring.application.name=helloserver
  
server.port=10000

eureka.client.service-url-defaultZone://localhost:10000/eureka/

application.yml使用—分割可以在一份文件中设置多个配置,最后选择其中一个进行运行。

如果使用注册中心通过服务名来访问需要在调用的方法上面加@LoadBalanced注解

服务注册流程

在我们client初始化时会初始一大堆定时任务,这些定时任务中肯定包含了一个心跳的定时任务,如果说我们心跳的定时任务启动后,就会向服务中心发起一次请求,判断一下我当前的服务实例有没有被注册在Eureka上面,若没有注册会返回一个404,就进入一个注册的状态,若不是404只会返回当前服务实例是否正常的状态。

服务端如何保存这些信息

服务端有一个json的拦截器,对客户端发送过来我们相应的请求进行拦截处理。

服务端就是通过一个json框架发送了一个http请求将自己的服务实例存放到concurrentHashMap.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章