背景假设
假设你需要手写一个注册中心,这时候你的注册中心需要有哪些功能?

- 服务列表,保存应用数据
- 应用下线、挂掉需要整理
- 主动上、下线,如何处理
- 被动上下线,如何处理
- 上下线会对现有程序产生什么影响?
心跳机制
应用和注册中心之间需要建立联系,每次联系就是一次请求,表示服务还活着,代表一次心跳。
AP原则
如果一段时间 90% 的服务都失去心跳,那么这是仲裁中心要剔除服务吗?
不会,可能是自己挂了。
配置
编写配置文件:
server:
port: 8761 #eureka 默认端口
spring:
application:
name: eureka-server-01
eureka:
server:
eviction-interval-timer-in-ms: 10000 # 服务端每间隔多少毫秒定期删除
# 85% 的服务下线,eureka不会剔除任何服务
renewal-percent-threshold: 0.85 # 的服务失去心跳 超过阈值不会剔除服务
instance: # 实例配置
instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} # 主机名称:应用名称:端口号
hostname: localhost
prefer-ip-address: true # 以ip形式显示具体服务信息
lease-renewal-interval-in-seconds: 5 # 服务实例续约时间间隔
#重新启动服务端

