Skip to content

Eureka Server配置

yml
server:
  port: ${PORT:8802}
spring:
  application:
    name: eureka-server
eureka:
  client:
    fetch-registry: true
    register-with-eureka: ${REGISER_WITH_EUREKA:true}
    service-url:
      defaultZone: ${EUREKA_SERVER_URL:http://peer1:8802/eureka/}
    registry-fetch-interval-seconds: 10 #单位:s  为了缓解服务列表的脏读问题
  server:
    eviction-interval-timer-in-ms: 10000 #单位ms 清理增量队列中过期的频率
    renewal-percent-threshold: 0.85 #续约百分比 超过85%的应用没有和你续约 那么eureka会保护服务 不会剔除任何一个服务
  instance: #实例配置
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} #主机名称:应用名称:端口
    hostname: ${HOSTNAME}
    prefer-ip-address: true #以ip的形式显示具体的服务信息
    lease-renewal-interval-in-seconds: 5 #单位:s 服务实例的续约时间间隔

将项目打包成 docker镜像

将eureka-server项目build之后,将 build/libs 下的 eureka-server-0.0.1-SNAPSHOT.jar jar包覆知道 项目根目录下的 docker 文件夹中,并且在 docker 文件夹下新增 Dockerfile 文件,文件内容为以下配置信息

dockerfile
FROM openjdk:8
ENV workdir=/Users/chenyuwu/workspace/eureka-server/docker
COPY .. ${workdir}
WORKDIR ${workdir}
EXPOSE 8802
CMD ["java","-jar","eureka-server-0.0.1-SNAPSHOT.jar"]

接着在当前目录下运行:

sshell
cd .. && docker build ./docker -t eureka-server:1.0

通过 docker-compose 运行 打包好的 eureka-server docker镜像

yml
version: '3'
services:
  eureka-server-01:
    image: eureka-server:1.0
    restart: always
    container_name: "01"
    ports:
      - 8802:8802
    environment:
      EUREKA_SERVER_URL : http://localhost:8802/eureka/
      HOSTNAME: peer1
    privileged: true