idea docker 水平扩展的两种方案

方案一:通过docker-compose的scale命令实现

这种方式应该是官方推荐的,具体可参考以下链接

nginx负载: https://www.cnblogs.com/JulianHuang/p/12568814.html

HAProxy负载: https://www.cnblogs.com/shenjianping/p/12257642.html

# 重新编译镜像,重新创建容器
docker-compose up --force-recreate --build -d

方案二:不使用scale命令,直接上代码

Dockerfile (意义不大)

FROM java:8
EXPOSE 8080

VOLUME /tmp
ADD target/renren-fast.jar  /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

docker-compose.yml (关键来了)

version: '3'
services:
  web:
    container_name: web
    image: renren/fast:latest 
    ports:
      - "8080:8080"
    environment:
      - spring.profiles.active=dev
      - server.port=8080
  web1:
    container_name: web1
    image: renren/fast:latest 
    ports:
      - "8081:8081"
    environment:
      - spring.profiles.active=dev
      - server.port=8081

application.yml

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
  port: 8080
  connection-timeout: 5000ms
  servlet:
    context-path: /renren-fast

spring:
  # 环境 dev|test|prod
  profiles:
    active: dev
  # jackson时间格式化
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB
      enabled: true
  redis:
    open: false  # 是否开启redis缓存  true开启   false关闭
    database: 0
    host: localhost
    port: 6379
    password:    # 密码(默认为空)
    timeout: 6000ms  # 连接超时时长(毫秒)
    jedis:
      pool:
        max-active: 1000  # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1ms      # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 10      # 连接池中的最大空闲连接
        min-idle: 5       # 连接池中的最小空闲连接
  mvc:
    throw-exception-if-no-handler-found: true

亲测确实可行

原文地址:https://www.cnblogs.com/zzt-lovelinlin/p/12865310.html