Merge pull request '功能优化' (#110) from wanjia9506/gitlink-notification-system:master into master

This commit is contained in:
wanjia9506 2023-05-23 17:12:55 +08:00
commit ac27658665
6 changed files with 202 additions and 177 deletions

View File

@ -33,6 +33,9 @@ cp middleware/.env.example middleware/.env
cp reader/src/main/resources/application.yml.example reader/src/main/resources/application.yml cp reader/src/main/resources/application.yml.example reader/src/main/resources/application.yml
cp writer/src/main/resources/application.yml.example writer/src/main/resources/application.yml cp writer/src/main/resources/application.yml.example writer/src/main/resources/application.yml
cp executor/src/main/resources/application.yml.example executor/src/main/resources/application.yml cp executor/src/main/resources/application.yml.example executor/src/main/resources/application.yml
cp reader/src/main/resources/mail.properties.example reader/src/main/resources/mail.properties
cp writer/src/main/resources/mail.properties.example writer/src/main/resources/mail.properties
cp executor/src/main/resources/mail.properties.example executor/src/main/resources/mail.properties
``` ```
5. 修改 `{repo}/middleware/.env` 文件里 `SQL_SCRIPT_PATH``DOCKER_DATA_PATH` 绝对路径到本地磁盘 5. 修改 `{repo}/middleware/.env` 文件里 `SQL_SCRIPT_PATH``DOCKER_DATA_PATH` 绝对路径到本地磁盘

View File

@ -23,4 +23,9 @@ CREATE TABLE `gitlink_email_send_records` (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `index_on_email_and_status` (`email`,`status`), KEY `index_on_email_and_status` (`email`,`status`),
KEY `index_on_status` (`status`) KEY `index_on_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
-- 2023-01-05 更新字符集编码
ALTER TABLE gitlink_email_jobs CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE gitlink_email_send_records CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

View File

@ -35,4 +35,7 @@ ALTER TABLE gitlink_sys_notification ADD COLUMN (`type` TINYINT(4) NOT NULL DEFA
-- 2021-09-09 新增 source 字段区分消息来源、新增 extra 字段保存额外信息 -- 2021-09-09 新增 source 字段区分消息来源、新增 extra 字段保存额外信息
ALTER TABLE gitlink_sys_notification ADD source varchar(250) NULL COMMENT '消息来源'; ALTER TABLE gitlink_sys_notification ADD source varchar(250) NULL COMMENT '消息来源';
ALTER TABLE gitlink_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)'; ALTER TABLE gitlink_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)';
-- 2023-01-05 更新字符集编码
ALTER TABLE gitlink_sys_notification CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

View File

@ -24,4 +24,7 @@ ALTER TABLE hehui_sys_notification ADD COLUMN (`type` TINYINT(4) NOT NULL DEFAUL
-- 2021-09-10 新增 source 字段区分消息来源、新增 extra 字段保存额外信息 -- 2021-09-10 新增 source 字段区分消息来源、新增 extra 字段保存额外信息
ALTER TABLE hehui_sys_notification ADD source varchar(250) NULL COMMENT '消息来源'; ALTER TABLE hehui_sys_notification ADD source varchar(250) NULL COMMENT '消息来源';
ALTER TABLE hehui_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)'; ALTER TABLE hehui_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)';
-- 2023-01-05 更新字符集编码
ALTER TABLE hehui_sys_notification CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

View File

@ -24,4 +24,7 @@ ALTER TABLE osredm_sys_notification ADD COLUMN (`type` TINYINT(4) NOT NULL DEFAU
-- 2021-09-10 新增 source 字段区分消息来源、新增 extra 字段保存额外信息 -- 2021-09-10 新增 source 字段区分消息来源、新增 extra 字段保存额外信息
ALTER TABLE osredm_sys_notification ADD source varchar(250) NULL COMMENT '消息来源'; ALTER TABLE osredm_sys_notification ADD source varchar(250) NULL COMMENT '消息来源';
ALTER TABLE osredm_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)'; ALTER TABLE osredm_sys_notification ADD extra TEXT NULL COMMENT '额外信息(备用字段)';
-- 2023-01-05 更新字符集编码
ALTER TABLE osredm_sys_notification CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

View File

@ -1,173 +1,181 @@
version: '3' version: '3'
services: services:
mysql: mysql:
image: mysql:${MYSQL_VERSION} image: mysql:${MYSQL_VERSION}
container_name: ${MYSQL_CONTAINER_NAME} container_name: ${MYSQL_CONTAINER_NAME}
hostname: mysql hostname: mysql
environment: environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER} - MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_DATABASE=${MYSQL_DATABASE}
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
volumes: volumes:
- ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql - ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql
- ${SQL_SCRIPT_PATH}/gns-notification.sql:/docker-entrypoint-initdb.d/0001.sql - ${SQL_SCRIPT_PATH}/gns-notification.sql:/docker-entrypoint-initdb.d/0001.sql
- ${SQL_SCRIPT_PATH}/hehui-gns-notification.sql:/docker-entrypoint-initdb.d/0002.sql - ${SQL_SCRIPT_PATH}/hehui-gns-notification.sql:/docker-entrypoint-initdb.d/0002.sql
- ${SQL_SCRIPT_PATH}/gns-email.sql:/docker-entrypoint-initdb.d/0003.sql - ${SQL_SCRIPT_PATH}/gns-email.sql:/docker-entrypoint-initdb.d/0003.sql
- ${SQL_SCRIPT_PATH}/osredm-gns-notification.sql:/docker-entrypoint-initdb.d/0004.sql - ${SQL_SCRIPT_PATH}/osredm-gns-notification.sql:/docker-entrypoint-initdb.d/0004.sql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports: ports:
- ${MYSQL_LOCAL_PORT}:3306 - ${MYSQL_LOCAL_PORT}:3306
networks: networks:
- gitlink_network - gitlink_network
restart: always
redis:
image: redis:${REDIS_VERSION} redis:
container_name: ${REDIS_CONTAINER_NAME} image: redis:${REDIS_VERSION}
hostname: redis container_name: ${REDIS_CONTAINER_NAME}
volumes: hostname: redis
- ${DOCKER_DATA_PATH}/redis/data:/data volumes:
- ${DOCKER_DATA_PATH}/redis/logs:/logs - ${DOCKER_DATA_PATH}/redis/data:/data
environment: - ${DOCKER_DATA_PATH}/redis/logs:/logs
- TZ=Asia/Shanghai environment:
ports: - TZ=Asia/Shanghai
- ${REDIS_LOCAL_PORT}:6379 ports:
networks: - ${REDIS_LOCAL_PORT}:6379
- gitlink_network networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-zookeeper restart: always
zookeeper:
image: confluentinc/cp-zookeeper:latest # See Also: https://hub.docker.com/r/confluentinc/cp-zookeeper
container_name: ${ZOOKEEPER_CONTAINER_NAME} zookeeper:
hostname: zookeeper image: confluentinc/cp-zookeeper:latest
environment: container_name: ${ZOOKEEPER_CONTAINER_NAME}
ZOOKEEPER_CLIENT_PORT: 2181 hostname: zookeeper
ZOOKEEPER_TICK_TIME: 2000 environment:
ports: ZOOKEEPER_CLIENT_PORT: 2181
- ${ZOOKEEPER_LOCAL_PORT}:2181 ZOOKEEPER_TICK_TIME: 2000
# volumes: ports:
# - ${DOCKER_DATA_PATH}/zookeeper:/var/lib/zookeeper - ${ZOOKEEPER_LOCAL_PORT}:2181
networks: # volumes:
- gitlink_network # - ${DOCKER_DATA_PATH}/zookeeper:/var/lib/zookeeper
networks:
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka - gitlink_network
kafka1: restart: always
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_01_NAME} # See Also: https://hub.docker.com/r/confluentinc/cp-kafka
hostname: kafka1 kafka1:
depends_on: image: confluentinc/cp-kafka:latest
- zookeeper container_name: ${KAFKA_CONTAINER_01_NAME}
ports: hostname: kafka1
- ${KAFKA_01_LOCAL_PORT}:29092 depends_on:
# volumes: - zookeeper
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/lib:/var/lib/kafka ports:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/logs:/var/logs/kafka - ${KAFKA_01_LOCAL_PORT}:29092
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/conf:/etc/kafka # volumes:
environment: # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/lib:/var/lib/kafka
KAFKA_BROKER_ID: 1 # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/logs:/var/logs/kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/conf:/etc/kafka
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:${KAFKA_01_LOCAL_PORT} environment:
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_BROKER_ID: 1
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:${KAFKA_01_LOCAL_PORT}
networks: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
- gitlink_network KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka networks:
kafka2: - gitlink_network
image: confluentinc/cp-kafka:latest restart: always
container_name: ${KAFKA_CONTAINER_02_NAME}
hostname: kafka2 # See Also: https://hub.docker.com/r/confluentinc/cp-kafka
depends_on: kafka2:
- zookeeper image: confluentinc/cp-kafka:latest
ports: container_name: ${KAFKA_CONTAINER_02_NAME}
- ${KAFKA_02_LOCAL_PORT}:39092 hostname: kafka2
# volumes: depends_on:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/lib:/var/lib/kafka - zookeeper
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/logs:/var/logs/kafka ports:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/conf:/etc/kafka - ${KAFKA_02_LOCAL_PORT}:39092
environment: # volumes:
KAFKA_BROKER_ID: 2 # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/lib:/var/lib/kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/logs:/var/logs/kafka
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092,PLAINTEXT_HOST://localhost:${KAFKA_02_LOCAL_PORT} # - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/conf:/etc/kafka
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT environment:
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_BROKER_ID: 2
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
networks: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092,PLAINTEXT_HOST://localhost:${KAFKA_02_LOCAL_PORT}
- gitlink_network KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
gitlink-reader: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
container_name: ${GNS_READER_CONTAINER_NAME} networks:
hostname: gitlink_reader - gitlink_network
image: gitlink/gns-reader:${GITLINK_NOTIFICATION_SYS_VERSION} restart: always
build:
context: ../ gitlink-reader:
dockerfile: middleware/reader.Dockerfile container_name: ${GNS_READER_CONTAINER_NAME}
networks: hostname: gitlink_reader
- gitlink_network image: gitlink/gns-reader:${GITLINK_NOTIFICATION_SYS_VERSION}
environment: build:
- TZ=Asia/Shanghai context: ../
volumes: dockerfile: middleware/reader.Dockerfile
- ${DOCKER_DATA_PATH}/gitlink/:/data/logs/ networks:
depends_on: - gitlink_network
- kafka1 environment:
- kafka2 - TZ=Asia/Shanghai
- redis volumes:
- mysql - ${DOCKER_DATA_PATH}/gitlink/:/data/logs/
ports: depends_on:
- ${GNS_READER_LOCAL_PORT}:8081 - kafka1
- kafka2
gitlink-writer: - redis
container_name: ${GNS_WRITER_CONTAINER_NAME} - mysql
hostname: gitlink_writer ports:
image: gitlink/gns-writer:${GITLINK_NOTIFICATION_SYS_VERSION} - ${GNS_READER_LOCAL_PORT}:8081
build: restart: always
context: ../
dockerfile: middleware/writer.Dockerfile gitlink-writer:
networks: container_name: ${GNS_WRITER_CONTAINER_NAME}
- gitlink_network hostname: gitlink_writer
environment: image: gitlink/gns-writer:${GITLINK_NOTIFICATION_SYS_VERSION}
- TZ=Asia/Shanghai build:
volumes: context: ../
- ${DOCKER_DATA_PATH}/gitlink/:/data/logs/ dockerfile: middleware/writer.Dockerfile
depends_on: networks:
- kafka1 - gitlink_network
- kafka2 environment:
- redis - TZ=Asia/Shanghai
- mysql volumes:
ports: - ${DOCKER_DATA_PATH}/gitlink/:/data/logs/
- ${GNS_WRITER_LOCAL_PORT}:8082 depends_on:
- kafka1
gitlink-executor: - kafka2
container_name: ${GNS_EXECUTOR_CONTAINER_NAME} - redis
hostname: gitlink_executor - mysql
image: gitlink/gns-executor:${GITLINK_NOTIFICATION_SYS_VERSION} ports:
build: - ${GNS_WRITER_LOCAL_PORT}:8082
context: ../ restart: always
dockerfile: middleware/executor.Dockerfile
networks: gitlink-executor:
- gitlink_network container_name: ${GNS_EXECUTOR_CONTAINER_NAME}
volumes: hostname: gitlink_executor
- ${DOCKER_DATA_PATH}/gitlink/:/data/logs/ image: gitlink/gns-executor:${GITLINK_NOTIFICATION_SYS_VERSION}
environment: build:
- TZ=Asia/Shanghai context: ../
depends_on: dockerfile: middleware/executor.Dockerfile
- kafka1 networks:
- kafka2 - gitlink_network
- redis volumes:
- mysql - ${DOCKER_DATA_PATH}/gitlink/:/data/logs/
ports: environment:
- ${GNS_EXECUTOR_LOCAL_PORT}:8083 - TZ=Asia/Shanghai
depends_on:
networks: - kafka1
gitlink_network: - kafka2
driver: bridge - redis
name: gitlink_network - mysql
driver_opts: ports:
com.docker.network.enable_ipv6: "true" - ${GNS_EXECUTOR_LOCAL_PORT}:8083
restart: always
networks:
gitlink_network:
driver: bridge
name: gitlink_network
driver_opts:
com.docker.network.enable_ipv6: "true"