From 2b68746d7364fa75f2a55641eebd11e5f6081216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B7=B4=E6=8B=89=E8=BF=AA=E7=BB=B4?= Date: Wed, 15 Sep 2021 10:03:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86GNS=E6=9C=8D=E5=8A=A1=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、新增 .dockerignore 文件用来保证构建镜像过程不受其他意外情况干扰 2、新增 application.yml.example 文件用来区分开发、测试环境 3、将GNS服务本身也容器化,运行 {repo}/middleware/start_docker_compose.sh 即可 --- .dockerignore | 3 + .gitignore | 2 + ...pplication.yml => application.yml.example} | 16 +++++- middleware/.env.example | 14 ++--- middleware/executor.Dockerfile | 13 +++++ middleware/reader.Dockerfile | 13 +++++ middleware/services.yml | 55 +++++++++++++++++++ middleware/start_docker_compose.sh | 3 +- middleware/writer.Dockerfile | 13 +++++ ...pplication.yml => application.yml.example} | 2 +- ...pplication.yml => application.yml.example} | 2 +- 11 files changed, 124 insertions(+), 12 deletions(-) create mode 100644 .dockerignore rename executor/src/main/resources/{application.yml => application.yml.example} (72%) create mode 100644 middleware/executor.Dockerfile create mode 100644 middleware/reader.Dockerfile create mode 100644 middleware/writer.Dockerfile rename reader/src/main/resources/{application.yml => application.yml.example} (91%) rename writer/src/main/resources/{application.yml => application.yml.example} (87%) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..887e2e1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +/docker-data +/logs +.idea \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7083f96..8697620 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,5 @@ target/ /docker-data/ /logs/ + +*/src/main/resources/application.yml \ No newline at end of file diff --git a/executor/src/main/resources/application.yml b/executor/src/main/resources/application.yml.example similarity index 72% rename from executor/src/main/resources/application.yml rename to executor/src/main/resources/application.yml.example index ffc92ec..148d332 100644 --- a/executor/src/main/resources/application.yml +++ b/executor/src/main/resources/application.yml.example @@ -7,12 +7,12 @@ logging: spring: kafka: producer: - bootstrap_servers: localhost:29092 + bootstrap_servers: localhost:29092,localhost:39092 client_id: gitlink_producer_01 retries: 5 batch_size: 16384 consumer: - bootstrap_servers: localhost:29092 + bootstrap_servers: localhost:29092,localhost:39092 client_id: gitlink_consumer group_id: group-gitlink-notification auto_offset_reset: earliest @@ -27,6 +27,18 @@ spring: # 提交模式 ack-mode: record + redis: + database: 0 + host: 127.0.0.1 + port: 6379 + password: + pool: + max-active: 200 + max-wait: -1 + max-idle: 10 + min-idle: 0 + timeout: 1000 + datasource: # 配置数据源类型 driver-class-name: com.mysql.jdbc.Driver diff --git a/middleware/.env.example b/middleware/.env.example index fa85465..32d6fca 100644 --- a/middleware/.env.example +++ b/middleware/.env.example @@ -5,29 +5,29 @@ MYSQL_VERSION=5.7.35 REDIS_VERSION=6.2.5 KAFKA_VERSION=latest -XXL_JOB_ADMIN_VERSION=2.3.0 +GITLINK_NOTIFICATION_SYS_VERSION=1.0.0 #============================================ Container config ============================================ MYSQL_CONTAINER_NAME=gitlink_mysql REDIS_CONTAINER_NAME=gitlink_redis -XXL_JOB_ADMIN_CONTAINER_NAME=gitlink_xxl_job_admin ZOOKEEPER_CONTAINER_NAME=gitlink_zookeeper KAFKA_CONTAINER_01_NAME=gitlink_kafka_01 KAFKA_CONTAINER_02_NAME=gitlink_kafka_02 +GNS_EXECUTOR_CONTAINER_NAME=gns_executor +GNS_READER_CONTAINER_NAME=gns_reader +GNS_WRITER_CONTAINER_NAME=gns_writer #============================================ Ports config ============================================ MYSQL_LOCAL_PORT=33306 REDIS_LOCAL_PORT=6379 ZOOKEEPER_LOCAL_PORT=22181 -XXL_JOB_ADMIN_LOCAL_PORT=9999 KAFKA_01_LOCAL_PORT=29092 KAFKA_02_LOCAL_PORT=39092 - -#============================================ Kafka Broker ID config ============================================ -KAFKA_01_BROKER_ID=1 -KAFKA_02_BROKER_ID=2 +GNS_EXECUTOR_LOCAL_PORT=8083 +GNS_WRITER_LOCAL_PORT=58082 +GNS_READER_LOCAL_PORT=58080 #============================================ Path config ============================================ # TODO: 需要预执行的 sql 脚本目录 diff --git a/middleware/executor.Dockerfile b/middleware/executor.Dockerfile new file mode 100644 index 0000000..3693731 --- /dev/null +++ b/middleware/executor.Dockerfile @@ -0,0 +1,13 @@ + +# Dockerfile for gns-writer.jar + +#FROM maven:3.8.2-openjdk-11-slim AS build +#COPY . /data +#WORKDIR /data +#RUN mvn clean package -DskipTests + +FROM openjdk:11.0.12-jre-slim +COPY executor/target/gns-executor-1.0.0.jar /data/gns-executor-app.jar +WORKDIR /data +EXPOSE 8083 +ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-executor-app.jar"] \ No newline at end of file diff --git a/middleware/reader.Dockerfile b/middleware/reader.Dockerfile new file mode 100644 index 0000000..cecccc0 --- /dev/null +++ b/middleware/reader.Dockerfile @@ -0,0 +1,13 @@ + +# Dockerfile for gns-writer.jar + +#FROM maven:3.8.2-openjdk-11-slim AS build +#COPY . /data +#WORKDIR /data +#RUN mvn clean package -DskipTests + +FROM openjdk:11.0.12-jre-slim +COPY reader/target/gns-reader-1.0.0.jar /data/gns-reader-app.jar +WORKDIR /data +EXPOSE 8081 +ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-reader-app.jar"] \ No newline at end of file diff --git a/middleware/services.yml b/middleware/services.yml index a598b7f..b52877f 100644 --- a/middleware/services.yml +++ b/middleware/services.yml @@ -92,6 +92,61 @@ services: - gitlink_network + gitlink-reader: + container_name: ${GNS_READER_CONTAINER_NAME} + hostname: gitlink_reader + image: gitlink/gns-reader:${GITLINK_NOTIFICATION_SYS_VERSION} + build: + context: ../ + dockerfile: middleware/reader.Dockerfile + networks: + - gitlink_network + volumes: + - ${DOCKER_DATA_PATH}/logs/:/data/logs/ + depends_on: + - kafka1 + - kafka2 + - redis + - mysql + ports: + - ${GNS_READER_LOCAL_PORT}:8081 + + gitlink-writer: + container_name: ${GNS_WRITER_CONTAINER_NAME} + hostname: gitlink_writer + image: gitlink/gns-writer:${GITLINK_NOTIFICATION_SYS_VERSION} + build: + context: ../ + dockerfile: middleware/writer.Dockerfile + networks: + - gitlink_network + volumes: + - ${DOCKER_DATA_PATH}/logs/:/data/logs/ + depends_on: + - kafka1 + - kafka2 + - redis + - mysql + ports: + - ${GNS_WRITER_LOCAL_PORT}:8082 + + gitlink-executor: + container_name: ${GNS_EXECUTOR_CONTAINER_NAME} + hostname: gitlink_executor + image: gitlink/gns-executor:${GITLINK_NOTIFICATION_SYS_VERSION} + build: + context: ../ + dockerfile: middleware/executor.Dockerfile + networks: + - gitlink_network + volumes: + - ${DOCKER_DATA_PATH}/logs/:/data/logs/ + depends_on: + - kafka1 + - kafka2 + ports: + - ${GNS_EXECUTOR_LOCAL_PORT}:8083 + networks: gitlink_network: driver: bridge diff --git a/middleware/start_docker_compose.sh b/middleware/start_docker_compose.sh index 59c6d96..1d22359 100755 --- a/middleware/start_docker_compose.sh +++ b/middleware/start_docker_compose.sh @@ -1 +1,2 @@ -docker-compose -f services.yml up +mvn -f ../pom.xml clean package -DskipTests +docker-compose -f services.yml up --build --force-recreate \ No newline at end of file diff --git a/middleware/writer.Dockerfile b/middleware/writer.Dockerfile new file mode 100644 index 0000000..e4578a9 --- /dev/null +++ b/middleware/writer.Dockerfile @@ -0,0 +1,13 @@ + +# Dockerfile for gns-writer.jar + +#FROM maven:3.8.2-openjdk-11-slim AS build +#COPY . /data +#WORKDIR /data +#RUN mvn clean package -DskipTests + +FROM openjdk:11.0.12-jre-slim +COPY writer/target/gns-writer-1.0.0.jar /data/gns-writer-app.jar +WORKDIR /data +EXPOSE 8082 +ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-writer-app.jar"] \ No newline at end of file diff --git a/reader/src/main/resources/application.yml b/reader/src/main/resources/application.yml.example similarity index 91% rename from reader/src/main/resources/application.yml rename to reader/src/main/resources/application.yml.example index df4d960..afc9157 100644 --- a/reader/src/main/resources/application.yml +++ b/reader/src/main/resources/application.yml.example @@ -29,7 +29,7 @@ spring: kafka: producer: - bootstrap_servers: localhost:29092 + bootstrap_servers: localhost:29092,localhost:39092 client_id: gitlink_producer_01 retries: 5 batch_size: 16384 diff --git a/writer/src/main/resources/application.yml b/writer/src/main/resources/application.yml.example similarity index 87% rename from writer/src/main/resources/application.yml rename to writer/src/main/resources/application.yml.example index cee9188..7f466d9 100644 --- a/writer/src/main/resources/application.yml +++ b/writer/src/main/resources/application.yml.example @@ -7,7 +7,7 @@ logging: spring: kafka: producer: - bootstrap_servers: localhost:29092 + bootstrap_servers: localhost:29092,localhost:39092 client_id: gitlink_producer_01 retries: 5 batch_size: 16384