翻看了不少网上的教程 千篇一律 那些该配置 不该配置很模糊 很多都是入门教程 经过个人实践 总结了eureka server 几个要点:
springcloud 版本 Dalson.SR4
# eureka server 高可用 配置 要点 eureka.instance.prefer-ip-address 不建议设置为true # eureka.client.registerWithEureka、 eureka.client.fetchRegistry 都要设置为true 默认值都为true # eureka.instance.appname =spring.application.name # 重要 defaultZone 高可用 不要使用ip 应该使用相应的域名DNS来配置 也就是 eureka.instance.hostname 指定DNS
每个分片必须指定hostname 不然当前分片显示不可用
eureka: instance: hostname: cluster1
最后一条很重要 分片是否成功的关键 一定要用dns来配置
windows 下 改host文件 linux 或者其他环境一样
样例配置 采用 3个实例集群 8761->8762->8763->8761 application.yml 如下:
运行指定配置文件spring.profiles.active=配置项 例如在springboot 可执行jar路径下 命令行执行
java -jar discovery-server-1.0-SNAPSHOT.jar --spring.profiles.active=master
启动了master 配置 红字换cluster1 对应启动 cluster1配置 相关 为springboot 特性
# eureka server 高可用 配置 要点 eureka.instance.prefer-ip-address 不建议设置为true
# eureka.client.registerWithEureka、 eureka.client.fetchRegistry 都要设置为true 默认值都为true
# eureka.instance.appname =spring.application.name
# 重要 defaultZone 高可用 不要使用ip 应该使用dns 也就是 eureka.instance.hostname 指定dns
# 本配置文件支持HA集群 3个实例组成三角关系 eg 8761->8762->8763->8761
# 公共配置
spring:
application:
name: DISCOVERY-SERVER
# 默认启动 master 配置
profiles:
active: master
eureka:
# 将监控页面的 test 环境更改为prod 强迫症患者的福音
environment: prod
instance:
appname: DISCOVERY-SERVER
# 页面显示ip:端口
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
client:
healthcheck:
enabled: true
# 向服务注册中心注册 默认为true 此处为了着重强调一下
register-with-eureka: true
# 检索服务 默认为true 此处为了着重强调一下
fetch-registry: true
# master 配置
---
server:
port: 8761
spring:
profiles: master
eureka:
instance:
# 此处应指定为dns 不使用 IP 或者localhost
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/
# cluster1 配置
---
server:
port: 8762
spring:
profiles: cluster1
eureka:
instance:
# 此处应指定为dns 不使用 IP 或者localhost
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer3:8763/eureka/
# cluster2 配置
---
server:
port: 8763
spring:
profiles: cluster2
eureka:
instance:
# 此处应指定为dns 不使用 IP 或者localhost
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
如果发现错误之处 还望指教 及时私信我,关注我的公众号