Docker中怎么部署eureka集群

发布时间:2021-06-18 16:15:10 作者:Leah
来源:亿速云 阅读:1157

今天就跟大家聊聊有关Docker中怎么部署eureka集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、环境准备

1.docker环境
2.springcloud-eureka项目
3.docker-compose环境

二、本机运行

三、Docker单节点试运行

step1:上传文件

   Docker中怎么部署eureka集群

step2:创建Dockerfile

# docker image for eureka-server
# version 1.0.0
# author Calvin
# 代表基础环境
FROM java:8
# 代表映射文件夹
VOLUME /tmp
# 将文件复制到镜像
ADD eureka-server-1.0-SNAPSHOT.jar eureka-server.jar
# 映射出来的端口
EXPOSE 9000
# 脚本
RUN bash -c 'touch eureka-server.jar'
# 启动命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server.jar"]

step3:编译docker镜像

  1. 编译
    $ docker build -t eureka-server .

  2. 查看结果
    $ docker images
    Docker中怎么部署eureka集群

step4:启动镜像验证结果

  1. 启动镜像 docker run -d -p 9000:9000 --name eureka-server eureka-server

  2. 页面查看
    Docker中怎么部署eureka集群

四、在Docker中多个节点运行

  1. 源码修改

复制application.yml文件为两份,分别为application-slave1.yml,application-slave2.yml 内容分别如下

# slave1
server:
  port: 9000
eureka:
  instance:
    hostname: eureka-server1
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka-server2:9000/eureka

# -------------------------------------------------------
# slave2
server:
  port: 8080
eureka:
  instance:
    hostname: eureka-server1
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka-server1:9000/eureka
  1. 增加docker-compose配置

version: '2'
services:
  eureka-server1:
    image: eureka-server
    container_name: eureka-server1
    hostname: eureka-server1
    networks:
      - eureka-net
    ports:
      - 9000:9000
    environment:
      - spring.profiles.active=slave1

  eureka-server2:
    image: eureka-server
    container_name: eureka-server2
    hostname: eureka-server2
    networks:
      - eureka-net
    ports:
      - 9001:9001
    environment:
      - spring.profiles.active=slave2
networks:
  eureka-net:
    driver: bridge
  1. 重新编译docker镜像

#停用原来的服务
docker stop eureka-server
#删除服务历史,避免后续启动的时候服务名重复
docker rm eureka-server
#删除原有镜像
docker rmi eureka
#重新生成镜像, 此处依然生成一个镜像,和之前步骤一致
docker build -t eureka-server
  1. 启动多个服务

# 目录为Dockerfile和 docker-compose.yml文件夹
docker-compose up -d
  1. 验证结果

#查看服务
docker ps | grep eureka-server 
#查看日志,等待启动成功
docker logs eureka-server1 -f 
#查看端口
netstat -nltp

Docker中怎么部署eureka集群

图中已经可以看到,eureka-server注册了两个

五、三组测试

此部分属于课题之外,吃瓜群众们可以撤了

  1. 把本地的一个注册中心再注册进集群中,从远程的集群中可以看到注册进来的eureka-server

  2. 向本地的注册中心注册common-service服务,然后把feign-service注册向远程中心9001端口,再调用处理

    1. 如果注册集群,集群之间的注册应该有相互通知,单方面注册会导致服务不同步

    2. 即使有一个中间的能看到三个服务的注册中心,也会由于部分实例信息没有同步而导致找不到对应的服务

    3. 远程9000端口上可以看到有三个服务,远程9001上只有两个服务

    4. feign-service调用common-service发生异常

  3. 把common-service重新注册到远程中,注册成功以后先调用一次,然后停用所有注册中心

六、总结

  1. 实践docker启动微服务,企业常用操作练习

  2. 在docker中部署注册中心的集群,以及批量部署其他服务,暂时是手动,后续研究k8s

  3. 探究eureka集群时候的三个问题,算是尝试eureka的特性场景,加固记忆

看完上述内容,你们对Docker中怎么部署eureka集群有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. docker部署lnmp集群
  2. Docker Stack如何部署web集群

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

eureka docker

上一篇:javascript小数相减出现一长串小数位数的原因是什么

下一篇:python清洗文件中数据的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》