前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 docker-compose 部署 Euraka

使用 docker-compose 部署 Euraka

作者头像
张云飞Vir
发布2020-05-26 22:02:47
1.5K0
发布2020-05-26 22:02:47
举报
文章被收录于专栏:写代码和思考写代码和思考

0. 背景

我 docker-compose 将我 SrpingBoot 微服务部署在 docker 容器中,在部署 Euraka 时 总是失败,无法连接到 Euraka服务器,经过各种寻找终于解决,记录成本文。

1. 问题描述

将要连接的 Euraka 客户机在连接 Euraka 时提示“连接拒绝”,或者“无法找到服务“

2. 解决

确保以下几处配置:

  • 1) eureka 工程的 application.yml 中的 spring.application.name 指定。比如我这里叫“eureka”
  • 2)docker-compose.yaml 配置文件中 services 配置文件下存在一个叫“eureka”的服务,名字同上。
  • 3)重点,重点,重点。客户机服务配置。在 docker-compose.yaml 配置文件中 ,要连接 enreka 的客户机服务的配置项中的重要配置如下: (a). 指定 links: - eureka 。 (b). 配置环境变量(environment):EUREKASERVER_URI: "http://eureka:8761/eureka/"
  • 4)客户端微服务工程目录下的 application.yml 配置 eureka.client.serviceUrl.defaultZone: ${EUREKASERVER_URI:http://localhost:8761/eureka/}

说明: links 配置项指定了 docker 客户端微服务 通过 eureka 这个名字进行连接。然后就可以使用 http://eureka:8761/eureka/ 配置发现服务的地址了。

3. 附录:我的配置文件


eureka 工程的 application.yml

代码语言:javascript
复制
server:
  port: ${PORT:8761}

spring:
  application:
    name: eureka     # 将在 Eureka 注册的服务的逻辑名称
  profiles:
    active: dev

eureka:
  client:
    registerWithEureka: false   #服务注册,是否将自己注册到Eureka服务中
    fetchRegistry: false        #服务发现,是否从Eureka中获取注册信息
  server:
    waitTimeInMsWhenSyncEmpty: 5

docker-compose. 的配置文件 docker-compose.yaml

代码语言:javascript
复制
version: '3.1'

services:

  eureka:
    build: ./eureka-service
    ports:
      - 8761:8761
    environment:
      PORT: "8761"
      PROFILE: "dev"

  zuul:
    build: ./zuul
    ports:
      - 11111:11111
    links:
      - eureka
    environment:
      PORT: "11111"
      PROFILE: "dev"
      EUREKA_SERVER: "eureka"
      EUREKASERVER_PORT: "8761"
      EUREKASERVER_URI: "http://eureka:8761/eureka/"

  article:
    build: ./article-service
    links:
      - eureka
    environment:
      PORT: "11400"
      PROFILE: "dev"
      EUREKA_SERVER: "eureka"
      EUREKASERVER_PORT: "8761"
      EUREKASERVER_URI: "http://eureka:8761/eureka/"

  user:
    build: ./user-service
    links:
      - eureka
    environment:
      PORT: "11300"
      PROFILE: "dev"
      EUREKA_SERVER: "eureka"
      EUREKASERVER_PORT: "8761"
      EUREKASERVER_URI: "http://eureka:8761/eureka/"

客户端微服务 工程的 application.yml

代码语言:javascript
复制
server:
  port: ${PORT:11111}

spring:
  application:
    name: zuul     # 将在 Eureka 注册的服务的逻辑名称

eureka:
  instance:
    preferIpAddress: true
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: ${EUREKASERVER_URI:http://localhost:8761/eureka/}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 背景
  • 1. 问题描述
  • 2. 解决
  • 3. 附录:我的配置文件
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档