参考:http://www.ityouknow.com/springcloud/2017/05/10/springcloud-eureka.html
spring boot版本:2.0.3.RELEASE
pom.xml
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Eureka server单机配置
application.yml
server:
port: 8765
eureka:
client:
# 是否将自身注册到注册中中心
register-with-eureka: false
# 是否从Eureka获取注册信息
fetch-registry: false
# 设置与Eureka Server交互地址,多个地址使用英文逗号分隔
service-url:
defaultZone: http://localhost:${server.port}/eureka/
启动服务
http://localhost:8765/
访问效果
Eureka server集群配置
application.yml
spring:
application:
name: spring-cloud-eureka
profiles: peer1
server:
port: 8080
eureka:
instance:
hostname: peer1
client:
# 设置与Eureka Server交互地址,多个地址使用英文逗号分隔
service-url:
defaultZone: http://peer2:8081/eureka/,http://peer3:8082/eureka/
# 是否将自身注册到注册中中心
register-with-eureka: true
# 是否从Eureka获取注册信息
fetch-registry: true
---
spring:
application:
name: spring-cloud-eureka
profiles: peer2
server:
port: 8081
eureka:
instance:
hostname: peer2
client:
# 设置与Eureka Server交互地址,多个地址使用英文逗号分隔
service-url:
defaultZone: http://peer1:8080/eureka/,http://peer3:8082/eureka/
# 是否将自身注册到注册中中心
register-with-eureka: true
# 是否从Eureka获取注册信息
fetch-registry: true
---
spring:
application:
name: spring-cloud-eureka
profiles: peer3
server:
port: 8082
eureka:
instance:
hostname: peer3
client:
# 设置与Eureka Server交互地址,多个地址使用英文逗号分隔
service-url:
defaultZone: http://peer1:8080/eureka/,http://peer2:8081/eureka/
# 是否将自身注册到注册中中心
register-with-eureka: true
# 是否从Eureka获取注册信息
fetch-registry: true
host文件调整
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
分别启动三个服务
java -jar xxx.jar --spring.profiles.active=peer1
java -jar xxx.jar --spring.profiles.active=peer2
java -jar xxx.jar --spring.profiles.active=peer3
注意
这里启动服务的时候可能会报错Connection refused,是因为启动的时候其他服务还没有起来,如果前两个服务完全启动在开始启动第三个服务,第三服务就不会报错。
访问
http://localhost:8080/
效果
问题
DS Replicas的peer2和peer3链接点击找不到网页。是因为peer2和peer3对应的url有问题!
访问peer2:8081/eureka/有问题,
访问peer2:8081就可以
这块暂时不知道怎么回事~