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

  • Consul 和 Eureka 都是用来解决服务发现(就是类似DNS服务)。
    Eureka 在应用主类中通过加上@EnableDiscoveryClient,该注解能激活Eureka中的DiscoveryClient。(微服务中说加上@EnableEurekaClient也可以);
    Consul 是在应用启动类Application加上@EnableDiscoveryClient

  • Feign是通过到 Consul Server 或 EurekaServer 查找相关服务。Feign是用于微服务之间的调用

这里写图片描述
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 ServerEurekaServer 的关系,这样就会在主调微服务的容器的/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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值