(1)启动服务后端口号默认为8080,没有读取yml文件配置的端口号?
验证是否yml文件是否有问题
把下面配置放在yml文件最前面,启动服务看是否服务还是默认的端口号,如果不是,说明yml文件可以读取到,是其他地方的问题。否则,可能写的yml文件有问题,需要检查yml文件的格式是否正确
server:
port: 7901
(2)Eureka集群高可用,报错如下
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
原因:
因为本地设置了多个server端(如peer1,peer2),而instance.hostname是唯一标识 ,此时需要配一下本地的host文件
cmd里敲notepad "%systemroot%/system32/drivers/etc/hosts" 回车
在idea中多次启动同一个项目,启动设置修改,每个高可用的端口都要配置一个启动项,-Dserver.port=7901,--spring.profiles.active=peer2
在启动过程中会报错,可以不用管。(注意如果运行非最后一个server端时,服务会启动成功但是还是报错,是因为他注册的某个服务还未启动导致,可以不用管,等所有服务都注册成功后,服务会自动注册成功的)
endpoint=DefaultEndpoint{ serviceUrl='http:
//peer2:7901/eureka/}
附Eureka高可用yml:
spring:
application:
name: eureka
security:
user:
name: root
password: root
logging:
level:
root: info
---
spring:
profiles: peer1
server:
port: 7901
eureka:
instance:
hostname: peer1
client:
#设置服务注册中心的URL
service-url:
defaultZone: http://root:root@peer2:7902/eureka/,http://root:root@peer3:7903/eureka/
---
spring:
profiles: peer2
server:
port: 7902
eureka:
instance:
hostname: peer2
client:
#设置服务注册中心的URL
service-url:
defaultZone: http://root:root@peer3:7903/eureka/,http://root:root@peer1:7901/eureka/
---
spring:
profiles: peer3
server:
port: 7903
eureka:
instance:
hostname: peer3
client:
#设置服务注册中心的URL
service-url:
defaultZone: http://root:root@peer1:7901/eureka/,http://root:root@peer2:7902/eureka/