今天我来学习eureka的配置详解,虽然工作很忙但是每天背单词,学技术松懈不能。
1. 配置详解
首先必须有服务端和客户端的概念,服务端为注册中心,客户端为各个接口提供微服务应用。所以eureka应该还包括,配置中心,API网关等等一个体系。
1.1 eureka的客户端配置
- 服务注册相关配置,包括服务注册中心的地址、服务获取的时间间隔,可用区域。
- 服务实例相关配置,包括服务实例的名称、IP地址、端口号、健康检查路径。
服务注册配置:
1.2指定注册中心
指定的注册中心主要是一个以defaultZone为key,Url为值的一个hashmap。
其他详细配置可详情,百度。贴出一个还未失效的连接:https://blog.csdn.net/cvntopuyef/article/details/78477724
服务实例类配置:
1.3元数据(服务端描述即将要注册的服务的详细情况)
当客户端向服务端注册的时候,所有的配置信息全部有EurekaInstanceConfigBean进行加载,但是真正的注册的时候会被包装成InstanceInfo对象发送给服务端。
1.4实例名配置
instanceinfo对象中的instanceId,他是区分同一服务中不同实例的唯一标识。Netflix Eureka中实例名采用主机名作为默认值,这样设置使得同一主机上无法启动多个相同服务实例。(Spring Eureka实现于前者)所以在spring cloud eureka的配置中,针对中医主机启动多实例,对实例的命名规则有了更合理的扩展jam,该规则hostname+name+instance_id+port
1.5端点配
由于元数据中注册带有/info和/health端点,服务端将会由/health的健康状态来更改状态。(需要服务端开启healthcheck)
当为应用设置context-path的时候,需要在/info和/health进行配置
management.context-path=/hello
eureka.instance.statusPageUrlPath=${management.context-path}/info
eureka.instance.healthCheckUrlPath=${management.context-path}/health
如果修改路径,需要如上方式将修改的路径引入
1.6健康检测
服务中会有资源中断的情况,例如数据库,缓存,消息代理,当外部资源无法联通,心跳可能依旧持续存在,所以可以实现actuator去检测,让注册中心可以访问正确的服务。