美文网首页
分布式部署与NGINX负载均衡

分布式部署与NGINX负载均衡

作者: ACtong | 来源:发表于2020-05-04 09:08 被阅读0次

一、启动docker容器

  1. 启动redis:
    docker run -p 6379:6379 --name redis -v d:\redis.conf:/etc/redis/redis.conf -d redis
  2. 启动MySQL
    docker run -d -p 3306:3306 --name=mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wxshop mysql
  • 初始化数据
    mvn flyway:migrate

二、 部署APP1(第一份)

1.常规打包方式:

  • 打包jar包:mvn package -DskipTests-DskipTests跳过测试
  1. 启动的时候修改端口,默认是8080端口,我们修改成8081
  • 第一种方式:直接来指定一个端口:
    java -Dserver.port=8081 -jar target/wxshop-0.0.1-SNAPSHOT.jar
  • 第二种方式:可以灵活修改配置文件,以Application Property Files为例
    [1] 首先创建一个vi my-new-app.yml,可以在里面进行端口的修改等操作
spring:
  application:
    name: wxshop
  datasource:
    url: jdbc:mysql://localhost:3306/wxshop?useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: root
    driverClassName: com.mysql.cj.jdbc.Driver
mybatis:
  config-location: classpath:db/mybatis/config.xml
wxshop:
  redis:
    host: 127.0.0.1
    port: 6379

server:
  port: 8081

[2] 把my-new-app.yml移入当前目录下的config目录,并改名为 application.yml

1. mkdir config
2. mv config/my-new-app.yml config/application.yml

[3] 启动程序java -jar target/wxshop-0.0.1-SNAPSHOT.jar

三、部署APP2(docker方式)

  1. 创建Dockerfile文件
FROM java:openjdk-8u111-alpine

RUN mkdir /app

WORKDIR /app

COPY target/wxshop-0.0.1-SNAPSHOT.jar /app

EXPOSE 8080

CMD [ "java", "-jar", "wxshop-0.0.1-SNAPSHOT.jar" ]
  1. 构建docker镜像出来
    docker build . -t wxshop,wxshop是镜像名

  2. 在8082端口起一个服务(APP2)
    [1] 这时候需要一个全新的配置,vi config/docker-application.yml,localhost改为本机的IP。因为容器中的localhost和宿主机的localhost不是同一个。

spring:
  application:
    name: wxshop
  datasource:
    url: jdbc:mysql://localhost:3306/wxshop?useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: root
    driverClassName: com.mysql.cj.jdbc.Driver
mybatis:
  config-location: classpath:db/mybatis/config.xml
wxshop:
  redis:
    host: localhost
    port: 6379

[2] 启动服务,由于docker容器的Linux对Windows支持并不是很高,他只对C:\Users 目录下进行挂载,其他目录都没有办法挂载,不过可以根据“windows docker volume mount“来搜索问题

  • 由于我们只是使用Windows下演示,就把docker-application.yml放到C:\Users
    docker run -p 8082:8080 -v C:\Users\docker-application.yml:/app/config/application.yml -it wxshop

四、部署Nginx

  1. 创建nginx配置vi config/nginx.conf
http {
    upstream myapp1 {
        10.0.75.1:8081;
        10.0.75.1:8082;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}

[2] 启动nginx
docker run -p 80:80 -v D:\Java_practice\wxshop\config\nginx.conf:/etc/nginx/nginx.conf:ro -it nginx

相关文章

网友评论

      本文标题:分布式部署与NGINX负载均衡

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