diff --git a/.gitignore b/.gitignore index 4de183c..3bf5fa8 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,5 @@ lint/tmp/ /.idea/ target/ + +.env \ No newline at end of file diff --git a/README.md b/README.md index 99e77ac..8cf5ad4 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,8 @@ 1. **xxl-job 调度管理中心** :提供对分布式的任务集中监控、管理等功能 2. **xxl-job 执行器** :消息中心的业务逻辑实现,目前只实现「系统通知」功能,后续可以考虑 `email-executor`、`text-message-executor` 等实现 3. **GNS-Writer**:给 `Forge业务层` 调用的 API 网关,负责从业务逻辑层接受信息 -4. **MQ**:独立运行的消息中间件服务 +4. **middleware**:独立运行的中间件服务, 包括消息中间件、缓存中间件、DB 5. **GNS-Reader**:给 `Forge业务层` 调用的 API 网关,负责提供业务数据 -6. **Redis**:独立运行的缓存中间件服务 ### 一些约定: diff --git a/db/mysql.yml b/db/mysql.yml deleted file mode 100644 index ad9558d..0000000 --- a/db/mysql.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - mysql: - restart: always - image: mysql:5.7.16 - container_name: my_mysql - volumes: - - ${MYSQL_DIR}/data:/var/lib/mysql - - ./conf/my.cnf:/etc/my.cnf - environment: - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - ports: - - 3306:3306 \ No newline at end of file diff --git a/db/sql/xxl_job.sql b/db/structure.sql similarity index 97% rename from db/sql/xxl_job.sql rename to db/structure.sql index 0c07998..26428f6 100644 --- a/db/sql/xxl_job.sql +++ b/db/structure.sql @@ -2,8 +2,8 @@ # XXL-JOB v2.3.0 # Copyright (c) 2015-present, xuxueli. -CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci; -use `xxl_job`; +CREATE database if NOT EXISTS `gitlink` default character set utf8mb4 collate utf8mb4_unicode_ci; +use `gitlink`; SET NAMES utf8mb4; diff --git a/middleware/.env.example b/middleware/.env.example new file mode 100644 index 0000000..d2b417b --- /dev/null +++ b/middleware/.env.example @@ -0,0 +1,40 @@ +# Environment Variables for docker-compose + +# Images config +MYSQL_VERSION=5.7.35 +REDIS_VERSION=latest +KAFKA_VERSION=latest + +# Containers config +MYSQL_CONTAINER_NAME=gitlink_mysql +REDIS_CONTAINER_NAME=gitlink_redis + +# Ports config +MYSQL_LOCAL_PORT=3306 ##TODO: Change port number to your lcoal port +REDIS_LOCAL_PORT=6379 ##TODO: Change port number to your lcoal port +ZOOKEEPER_LOCAL_PORT=2181 ##TODO: Change port number to your lcoal port +KAFKA_LOCAL_PORT=9092 ##TODO: Change port number to your lcoal port +KAFKA_MANAGER_LOCAL_PORT=9003 ##TODO: Change port number to your lcoal port + +# Hosts config +KAFKA_HOST=172.16.15.29 + +# Path config +MYSQL_WORK_PATH=D:\repos\mysql-docker ## TODO: Change path to your local file system path +MYSQL_DATA_PATH=D:\repos\mysql-docker ## TODO: Change path to your local file system path +REDIS_WORK_PATH=D:\repos\redis-docker ## TODO: Change path to your local file system path + + +# Mysql config +MYSQL_ROOT_PASSWORD=gitLiNk_827 +MYSQL_USER=gitlink +MYSQL_PASSWORD=giTlinK0^827 +MYSQL_DATABASE=gitlink + +# Kafka config +KAFKA_LOG_RETENTION_HOURS=120 +KAFKA_MESSAGE_MAX_BYTES=10000000 +KAFKA_REPLICA_FETCH_MAX_BYTES=10000000 +KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS=60000 +KAFKA_NUM_PARTITIONS=3 +KAFKA_DELETE_RETENTION_MS=1000 \ No newline at end of file diff --git a/middleware/.md b/middleware/.md new file mode 100644 index 0000000..abe7ded --- /dev/null +++ b/middleware/.md @@ -0,0 +1,5 @@ +# 中间件使用说明 +将示例文件复制为 .env,然后按需修改相关环境变量 +```shell script +cp .env.example .env +``` \ No newline at end of file diff --git a/db/conf/my.cnf b/middleware/conf/my.cnf similarity index 100% rename from db/conf/my.cnf rename to middleware/conf/my.cnf diff --git a/redis/conf/redis.conf b/middleware/conf/redis.conf similarity index 100% rename from redis/conf/redis.conf rename to middleware/conf/redis.conf diff --git a/middleware/services.yml b/middleware/services.yml new file mode 100644 index 0000000..b2bdd91 --- /dev/null +++ b/middleware/services.yml @@ -0,0 +1,52 @@ +version: '3' +services: + db: + image: mysql:${MYSQL_VERSION} + container_name: ${MYSQL_CONTAINER_NAME} + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + volumes: + - ${MYSQL_DATA_PATH}/gitlink_data:/var/lib/mysql + - ${MYSQL_WORK_PATH}/sql/structure.sql:/docker-entrypoint-initdb.d/0000.sql + ports: + - ${MYSQL_LOCAL_PORT}:3306 + + redis: + image: redis:${REDIS_VERSION} + container_name: ${REDIS_CONTAINER_NAME} + volumes: + - ${REDIS_WORK_PATH}/data:/data + - ${REDIS_WORK_PATH}/redis.conf:/usr/local/etc/redis/redis.conf + - ${REDIS_WORK_PATH}/logs:/logs + ports: + - ${REDIS_LOCAL_PORT}:6379 + + zookeeper: + image: wurstmeister/zookeeper + ports: + - ${ZOOKEEPER_LOCAL_PORT}:2181 + kafka: + image: wurstmeister/kafka + volumes: + - /etc/localtime:/etc/localtime + ports: + - ${KAFKA_LOCAL_PORT}:9092 + environment: + KAFKA_ADVERTISED_HOST_NAME: ${KAFKA_HOST} + KAFKA_ZOOKEEPER_CONNECT: ${KAFKA_HOST}:${ZOOKEEPER_LOCAL_PORT} + KAFKA_ADVERTISED_PORT: ${KAFKA_LOCAL_PORT} + KAFKA_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS} + KAFKA_MESSAGE_MAX_BYTES: ${KAFKA_MESSAGE_MAX_BYTES} + KAFKA_REPLICA_FETCH_MAX_BYTES: ${KAFKA_REPLICA_FETCH_MAX_BYTES} + KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: ${KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS} + KAFKA_NUM_PARTITIONS: ${KAFKA_NUM_PARTITIONS} + KAFKA_DELETE_RETENTION_MS: ${KAFKA_DELETE_RETENTION_MS} + kafka-manager: + image: sheepkiller/kafka-manager + environment: + ZK_HOSTS: ${KAFKA_HOST} + ports: + - ${KAFKA_MANAGER_LOCAL_PORT}:9000 \ No newline at end of file diff --git a/mq/kafka.yml b/mq/kafka.yml deleted file mode 100644 index f0a18e8..0000000 --- a/mq/kafka.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '2' -services: - zookeeper: - image: wurstmeister/zookeeper - ports: - - "2181:2181" - kafka: - image: wurstmeister/kafka - volumes: - - /etc/localtime:/etc/localtime - ports: - - "9092:9092" - environment: - KAFKA_ADVERTISED_HOST_NAME: 172.16.15.29 - KAFKA_ZOOKEEPER_CONNECT: 172.16.15.29:2181 - KAFKA_ADVERTISED_PORT: 9092 - KAFKA_LOG_RETENTION_HOURS: 120 - KAFKA_MESSAGE_MAX_BYTES: 10000000 - KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000 - KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000 - KAFKA_NUM_PARTITIONS: 3 - KAFKA_DELETE_RETENTION_MS: 1000 - kafka-manager: - image: sheepkiller/kafka-manager - environment: - ZK_HOSTS: 172.16.15.29 - ports: - - "9003:9000" \ No newline at end of file diff --git a/redis/redis.yml b/redis/redis.yml deleted file mode 100644 index 781b601..0000000 --- a/redis/redis.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3' -services: - redis: - image: redis:latest - container_name: docker_redis - volumes: - - ${REDIS_DIR}/data:/data - - ./conf/redis.conf:/usr/local/etc/redis/redis.conf - - ${REDIS_DIR}/logs:/logs - ports: - - 6379:6379