无服务注册中心
Eureka的作用
服务注册流程
Eureka核心知识
服务端如何保存这些信息
消费者服务发现
高可用集群
### 心跳和服务剔除机制是什么
注册中心配置过程
- 导入依赖
<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>
- 在springboot启动类上添加
@EnableEurekaServer
注解 - 在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.