修改 eurekaserver工程
修改application.yml配置文件,如下:
server:
port: 7001
eureka:
instance:
hostname: ${spring.cloud.client.ip-address} #eureka服务端的实例名称
#prefer-ip-address: true
client:
register-with-eureka: false #不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#与eureka server交互的地址查询服务和注册服务都需要依赖该地址
defaultZone: http://192.168.0.200:7002/eureka/
注意:
hostname: ${spring.cloud.client.ip-address}hostname不能相同,这里用本机ip作为hostname,否则要修改hosts文件,配置域名。这是eureka2.x写法
eureka1.x写法:${spring.cloud.client.ipAddress}prefer-ip-address: true,确保机器优先使用IP而不是到hosts解析域名defaultZone:指向其他eureka server,如果有多个,用
,分割
如:defaultZone: http://127.0.0.1:7002/eureka/,http://192.168.0.100:7002/eureka/
创建 eurekaserver2 工程
主启动类、pom.xml与 eurekaserver 工程相同
application.yml配置文件,如下
server:
port: 7002
eureka:
instance:
hostname: ${spring.cloud.client.ip-address} #eureka服务端的实例名称
# prefer-ip-address: true
client:
register-with-eureka: false #不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#与eureka server交互的地址查询服务和注册服务都需要依赖该地址
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
defaultZone: http://192.168.0.201:7001/eureka/
注意:
defaultZone:指向其他eureka server,如果有多个,用,分割
部署
注意这里容易混乱:
由于
eurekaserver工程配置其他eureka server的ip是192.168.0.200,所以eurekaserver2必须部署在ip是192.168.0.200的电脑上由于
eurekaserver2工程配置其他eureka server的ip是192.168.0.201,所以eurekaserver,必须部署在ip是192.168.0.201的电脑上
修改 notice工程
修改application.yml文件,如下:
eureka:
client:
register-with-eureka: true #将自己注册到eureka server
fetch-registry: true #是否从eureka server 抓取已有的注册信息。单节点没用,集群必须设置true才能配合ribbon使用负载均衡
service-url:
# defaultZone: http://localhost:7001/eureka
defaultZone: http://192.168.0.200:7002/eureka,http://192.168.0.201:7001/eureka
instance:
instance-id: ${spring.cloud.client.ip-address}:${server.port}
prefer-ip-address: true
注意: 在defaultZone后面加上2个eureka server的url,由,分割
测试
先启动2个eureka server
然后启动notice服务
测试 1
打开浏览器访问 http://192.168.0.201:7001/ ,该服务是eurekaserver工程的,如下:
红框中192.168.0.200就是 eurekaserver工程 application.yml文件中配置的defaultZone
测试 2
打开浏览器访问 http://192.168.0.200:7002/ ,该服务是eurekaserver2工程的
测试 3
打开浏览器访问 http://192.168.0.201:8001/getNoticeById/1 ,测试notice服务能否正常运行


