spring.cloud.config.uri配置成servicename这个是什么原理?

成熠 发布于 03/14 22:49
阅读 149
收藏 1

最近学习SpringCloud,在看PiggyMetrics这个项目,发现里面有一些让人费解的配置,如下:

spring:
  cloud:
    config:
      uri: http://config:8888
eureka:
  client:
    serviceUrl:
      defaultZone: http://registry:8761/eureka/
security:
  oauth2:
    resource:
      user-info-uri: http://auth-service:5000/uaa/users/current
spring:
  data:
    mongodb:
      host: account-mongodb

这些yml配置文件中的uri和host均没有指定具体的IP地址,而是指定了对应的服务提供方名称(service-name),如config,auth-service,account-service,register,我按照传统启动SpringBoot应用的思路,在IDEA里面Run相应服务的Application启动类,发现它是会报错了,例如找不到配置中心http://config:8888,这可以理解。

可是让人费解的是,如果使用项目描述文件中的docker-compose命令启动,就一切正常,然后通过IP地址访问也正常,这就让我非常纳闷了?我理解服务在启动过程中,应该也是会去往注册中心 http://config:8888 注册的,我本机没有绑定相关host,难道docker-compose实现了这种uri中的host映射到对应的service所在IP的功能?这又是一个什么机制呢? 我搜索了很多关于Spring-Cloud-Starter-Config和Docker-Compose的资料,都没有找到类似的功能机制,实在是费解。

加载中
0
w
wailouci
服务发现,从注册中心找这个名称的微服务作为注册中心
返回顶部
顶部