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 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 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` 绝对路径到本地磁盘

View File

@ -23,4 +23,9 @@ CREATE TABLE `gitlink_email_send_records` (
PRIMARY KEY (`id`),
KEY `index_on_email_and_status` (`email`,`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 字段保存额外信息
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 字段保存额外信息
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 字段保存额外信息
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'
services:
mysql:
image: mysql:${MYSQL_VERSION}
container_name: ${MYSQL_CONTAINER_NAME}
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql
- ${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}/gns-email.sql:/docker-entrypoint-initdb.d/0003.sql
- ${SQL_SCRIPT_PATH}/osredm-gns-notification.sql:/docker-entrypoint-initdb.d/0004.sql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports:
- ${MYSQL_LOCAL_PORT}:3306
networks:
- gitlink_network
redis:
image: redis:${REDIS_VERSION}
container_name: ${REDIS_CONTAINER_NAME}
hostname: redis
volumes:
- ${DOCKER_DATA_PATH}/redis/data:/data
- ${DOCKER_DATA_PATH}/redis/logs:/logs
environment:
- TZ=Asia/Shanghai
ports:
- ${REDIS_LOCAL_PORT}:6379
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-zookeeper
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: ${ZOOKEEPER_CONTAINER_NAME}
hostname: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- ${ZOOKEEPER_LOCAL_PORT}:2181
# volumes:
# - ${DOCKER_DATA_PATH}/zookeeper:/var/lib/zookeeper
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka1:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_01_NAME}
hostname: kafka1
depends_on:
- zookeeper
ports:
- ${KAFKA_01_LOCAL_PORT}:29092
# volumes:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/lib:/var/lib/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/logs:/var/logs/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/conf:/etc/kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:${KAFKA_01_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka2:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_02_NAME}
hostname: kafka2
depends_on:
- zookeeper
ports:
- ${KAFKA_02_LOCAL_PORT}:39092
# volumes:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/lib:/var/lib/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/logs:/var/logs/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/conf:/etc/kafka
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092,PLAINTEXT_HOST://localhost:${KAFKA_02_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- 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
environment:
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/gitlink/:/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
environment:
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/gitlink/:/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}/gitlink/:/data/logs/
environment:
- TZ=Asia/Shanghai
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_EXECUTOR_LOCAL_PORT}:8083
networks:
gitlink_network:
driver: bridge
name: gitlink_network
driver_opts:
com.docker.network.enable_ipv6: "true"
version: '3'
services:
mysql:
image: mysql:${MYSQL_VERSION}
container_name: ${MYSQL_CONTAINER_NAME}
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql
- ${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}/gns-email.sql:/docker-entrypoint-initdb.d/0003.sql
- ${SQL_SCRIPT_PATH}/osredm-gns-notification.sql:/docker-entrypoint-initdb.d/0004.sql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports:
- ${MYSQL_LOCAL_PORT}:3306
networks:
- gitlink_network
restart: always
redis:
image: redis:${REDIS_VERSION}
container_name: ${REDIS_CONTAINER_NAME}
hostname: redis
volumes:
- ${DOCKER_DATA_PATH}/redis/data:/data
- ${DOCKER_DATA_PATH}/redis/logs:/logs
environment:
- TZ=Asia/Shanghai
ports:
- ${REDIS_LOCAL_PORT}:6379
networks:
- gitlink_network
restart: always
# See Also: https://hub.docker.com/r/confluentinc/cp-zookeeper
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: ${ZOOKEEPER_CONTAINER_NAME}
hostname: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- ${ZOOKEEPER_LOCAL_PORT}:2181
# volumes:
# - ${DOCKER_DATA_PATH}/zookeeper:/var/lib/zookeeper
networks:
- gitlink_network
restart: always
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka1:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_01_NAME}
hostname: kafka1
depends_on:
- zookeeper
ports:
- ${KAFKA_01_LOCAL_PORT}:29092
# volumes:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/lib:/var/lib/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/logs:/var/logs/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}/conf:/etc/kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:${KAFKA_01_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- gitlink_network
restart: always
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka2:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_02_NAME}
hostname: kafka2
depends_on:
- zookeeper
ports:
- ${KAFKA_02_LOCAL_PORT}:39092
# volumes:
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/lib:/var/lib/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/logs:/var/logs/kafka
# - ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}/conf:/etc/kafka
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092,PLAINTEXT_HOST://localhost:${KAFKA_02_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- gitlink_network
restart: always
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
environment:
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/gitlink/:/data/logs/
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_READER_LOCAL_PORT}:8081
restart: always
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
environment:
- TZ=Asia/Shanghai
volumes:
- ${DOCKER_DATA_PATH}/gitlink/:/data/logs/
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_WRITER_LOCAL_PORT}:8082
restart: always
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}/gitlink/:/data/logs/
environment:
- TZ=Asia/Shanghai
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_EXECUTOR_LOCAL_PORT}:8083
restart: always
networks:
gitlink_network:
driver: bridge
name: gitlink_network
driver_opts:
com.docker.network.enable_ipv6: "true"