0
点赞
收藏
分享

微信扫一扫

关于服务发现、Feign、Zuul 以及docker之间的依赖


  • Consul 和 Eureka 都是用来解决服务发现(就是类似DNS服务)。
    Eureka 在应用主类中通过加上​​@EnableDiscoveryClient​​,该注解能激活Eureka中的DiscoveryClient。(微服务中说加上​​@EnableEurekaClient​​也可以);
    Consul 是在应用启动类​​Application​​加上​​@EnableDiscoveryClient​​;
  • Feign是通过到 Consul Server 或 EurekaServer 查找相关服务。Feign是用于微服务之间的调用

关于服务发现、Feign、Zuul 以及docker之间的依赖_docker


ref : ​​微服务​

  • Zuul也是通过到 Consul Server 或 EurekaServer 查找相关服务。Zuul是用于外部的Request 提供网关。
    Zuul 例子 ref : Spring Cloud微服务(3)之网关Zuul

有个问题:Zuul 和 Feign 要找到其他微服务,得通过 Consul 或 Eureka,那 Consul 或 Eureka 的地址是动态的话怎么办?

  •  如果是通过docker部署微服务,那么就需要在​​docker-compose.yml​​中的 ​​links​​ 设置微服务与 ​​Consul Server​​ 或 ​​EurekaServer​​ 的关系,这样就会在主调微服务的容器的​​/etc/hosts​​文件里创建相应记录。比如customer-service,那么应该在​​docker-compose.yml​​:

customer-service:
links:
- consul-service:consul-service

  •  详情看下面。
  • docker之间的依赖
    ref : Docker之Compose服务编排
    docker-compose.yml参数:
    links:用于链接另一容器服务
    示例:

links:
- db
- db:mysql
- redis

  •  使用了别名将自动会在容器的​​/etc/hosts​​文件里创建相应记录:

172.17.2.186 db
172.17.2.186 mysql
172.17.2.187 redis

  •  所以我们在容器里就可以直接使用别名作为服务的主机名。
    depends_on
    用于指定服务依赖,一般是mysql、redis等。
    指定了依赖,将会优先于服务创建并启动依赖。
    links也可以指定依赖。


举报

相关推荐

0 条评论