美文网首页
3.SpringCloud-Eureka-Docker

3.SpringCloud-Eureka-Docker

作者: 元代码 | 来源:发表于2018-04-12 21:48 被阅读0次

    首先通过docker命令来手动部署,在本机进行测试,以便熟悉流程。
    然后使用maven的docker插件进行配置,以便快速上线。
    注:
    1.maven插件对docker命令并没有完全支持,可以使用嵌入dockerfile的方式构建镜像。
    2.仓库可以使用docker官方仓库或者自行搭建

    1.创建Eureka-server集群

    1.1 创建工程,并引入eureka-server,入口类

    <dependency>
    
    <groupId>org.springframework.cloud</groupId>
    
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    
    </dependency>
    

    1.2修改启动application加注解

    @EnableEurekaServer
    

    1.3配置文件

    application.yml:

    spring:
    
    application:
    
    name: eurekaserverdocker
    

    application-eurekaService1.yml

    spring:
    
    profiles: eurekaService1
    
    server:
    
    port: 8888
    
    eureka:
    
    instance:
    
    hostname: eurekaService1 # 指定该Eureka实例的主机名
    
    prefer-ip-address: true
    
    client:
    
    serviceUrl: #多个地址使用 , 分隔。
    
    defaultZone: http://eurekaService2:8887/eureka/,http://eurekaService3:8886/eureka/
    

    application-eurekaService2.yml

    spring:
    
    profiles: eurekaService2
    
    server:
    
    port: 8887
    
    eureka:
    
    instance:
    
    hostname: eurekaService2 # 指定该Eureka实例的主机名
    
    prefer-ip-address: true
    
    client:
    
    serviceUrl: #多个地址使用 , 分隔。
    
    defaultZone: http://eurekaService1:8888/eureka/,http://eurekaService3:8886/eureka/
    

    application-eurekaService3.yml

    spring:
    
    profiles: eurekaService3
    
    server:
    
    port: 8886
    
    eureka:
    
    instance:
    
    hostname: eurekaService3 # 指定该Eureka实例的主机名
    
    prefer-ip-address: true
    
    client:
    
    serviceUrl: #多个地址使用 , 分隔。
    
    defaultZone: http://eurekaService1:8888/eureka/,http://eurekaService2:8887/eureka/
    

    2.使用docker手动部署(后续会加入使用Maven插件方式部署)

    2.1 创建文件夹,加入工程的jar包,以及Dockerfile:

    FROM openjdk:8u131-jdk-alpine
    
    MAINTAINER gaojingyuan
    
    #将指定的jar文件复制到容器中
    
    COPY eurekaserverdocker-0.0.1-SNAPSHOT.jar /usr/local/
    
    #执行jar文件
    
    ENTRYPOINT ["java" ,"-jar","/usr/local/eurekaserverdocker-0.0.1-SNAPSHOT.jar"]
    

    注:这里也可以配置为centos,通过配置安装java

    FROM centos
    
    MAINTAINER gaojingyuan
    
    #安装应用执行的环境java
    
    RUN yum -y install java
    
    #将指定的jar文件复制到容器中
    
    COPY eurekaserverdocker-0.0.1-SNAPSHOT.jar /usr/local/
    
    #执行jar文件
    
    ENTRYPOINT ["java" ,"-jar","/usr/local/eurekaserverdocker-0.0.1-SNAPSHOT.jar"]
    

    但是通过对比可以看出占用空间相差较多

    REPOSITORY TAG IMAGE ID CREATED SIZE
    
    gaojingyuan/eurekacluster latest b126393b43e1 10 seconds ago 146MB
    
    gaojingyuan/eurekaserver latest 30d0a7cc0d47 2 weeks ago 483MB
    

    2.2 构建image

    docker build -t gaojingyuan/eurekacluster .
    

    2.3 定义 docker-compose.yml

    version: "3"
    
    services:
    
    eurekaService1: # 默认情况下,其他服务可以使用服务名称连接到该服务。因此,对于peer2的节点,它需要连接http://peer1:8761/eureka/,因此需要配置该服务的名称是peer1。
    
    image: gaojingyuan/eurekacluster
    
    networks:
    
    - eureka-net
    
    ports:
    
    - "8888:8888"
    
    environment:
    
    - spring.profiles.active=eurekaService1
    
    eurekaService2:
    
    image: gaojingyuan/eurekacluster
    
    networks:
    
    - eureka-net
    
    ports:
    
    - "8887:8887"
    
    environment:
    
    - spring.profiles.active=eurekaService2
    
    eurekaService3:
    
    image: gaojingyuan/eurekacluster
    
    networks:
    
    - eureka-net
    
    ports:
    
    - "8886:8886"
    
    environment:
    
    - spring.profiles.active=eurekaService3
    
    networks:
    
    eureka-net:
    
    driver: overlay
    

    2.4初始化蜂群并启动服务

    docker swarm init
    
    docker stack deploy -c docker-compose.yml eurekacluster
    

    浏览器查看http://localhost:8888/ http://localhost:8887/ http://localhost:8886/

    可以看到配置成功


    2.5 查看及删除服务

    docker service ls
    docker stack rm eurekacluster
    

    相关文章

      网友评论

          本文标题:3.SpringCloud-Eureka-Docker

          本文链接:https://www.haomeiwen.com/subject/muzfkftx.html