eureka
1 解决的问题
服务的注册中心
2 应用
项目样例地址:
https://github.com/beckbikang/spring-cloud
单独启动几个进程作为eureka-server
高可用server1
代码语言:txt复制spring.application.name=keureka-server1
server.port=6020
#不向注册中心注册
eureka.client.register-with-eureka=false
#不去检索服务
eureka.client.fetch-registry=false
#关闭过载保护
eureka.server.enable-self-preservation=false
# 每五秒钟同步一次
eureka.server.eviction-interval-timer-in-ms=5000
eureka.client.serviceUrl.defaultZone=http://tom:123456@localhost:6010/eureka/
高可用server2
代码语言:txt复制spring.application.name=keureka-server2
server.port=6010
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=5000
eureka.client.serviceUrl.defaultZone=http://tom:123456@localhost:6020/eureka/
生产者配置
代码语言:txt复制spring.application.name=eureka-client-user
server.port=7010
eureka.client.serviceUrl.defaultZone=http://tom:123456@localhost:6010/eureka/,http://tom:123456@localhost:6020/eureka/
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
eureka.client.healthcheck.enabled=true
eureka.instance.lease-expiration-duration-in-seconds=5
eureka.instance.metadata-map.yuantiandi=tom
3 实现
关键节点信息
整体设计
基于AP实现,每个节点都有服务的全部信息
详细设计
server设计
- 服务注册表的设计
- 服务注册
- 接受服务心跳
- 服务剔除
- 服务下线
- 集群同步
client设计
- 读取应用自身配置信息
- 服务发现客户端
- 拉取注册表信息
- 服务注册
- 初始化定时任务
- 服务下线