From f0fb9d36a92be896a5e23c5336c430bc53275629 Mon Sep 17 00:00:00 2001 From: OPGame <1242479791@qq.com> Date: Wed, 24 Jul 2019 21:12:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=83=A8=E7=BD=B2=E5=88=B0do?= =?UTF-8?q?cker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/Dockerfile | 7 +++ db/yami_shop.sql | 13 +++-- docker-compose.yml | 55 +++++++++++++++++++ yami-shop-admin/Dockerfile | 15 +++++ .../src/main/resources/application-docker.yml | 20 +++++++ .../src/main/resources/application-prod.yml | 2 +- .../src/main/resources/redisson-docker.yml | 31 +++++++++++ .../src/main/resources/redisson.yml | 2 +- yami-shop-api/Dockerfile | 15 +++++ .../src/main/resources/application-docker.yml | 21 +++++++ .../src/main/resources/redisson-docker.yml | 31 +++++++++++ 11 files changed, 205 insertions(+), 7 deletions(-) create mode 100644 db/Dockerfile create mode 100644 docker-compose.yml create mode 100644 yami-shop-admin/Dockerfile create mode 100644 yami-shop-admin/src/main/resources/application-docker.yml create mode 100644 yami-shop-admin/src/main/resources/redisson-docker.yml create mode 100644 yami-shop-api/Dockerfile create mode 100644 yami-shop-api/src/main/resources/application-docker.yml create mode 100644 yami-shop-api/src/main/resources/redisson-docker.yml diff --git a/db/Dockerfile b/db/Dockerfile new file mode 100644 index 0000000..bc4ec24 --- /dev/null +++ b/db/Dockerfile @@ -0,0 +1,7 @@ +FROM mysql:5.7 + +MAINTAINER opgames(opgames.cn@gmail.com) + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +COPY ./db/yami_shop.sql /docker-entrypoint-initdb.d \ No newline at end of file diff --git a/db/yami_shop.sql b/db/yami_shop.sql index 062baf1..ab67dbc 100644 --- a/db/yami_shop.sql +++ b/db/yami_shop.sql @@ -3,6 +3,9 @@ SQLyog Ultimate v12.5.1 (64 bit) MySQL - 5.7.23 : Database - mall4j ********************************************************************* */ +create database `yami_shops` default character set utf8 collate utf8_general_ci; + +USE yami_shops; /*!40101 SET NAMES utf8 */; @@ -115,10 +118,10 @@ CREATE TABLE `qrtz_job_details` ( /*Data for the table `qrtz_job_details` */ insert into `qrtz_job_details`(`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`,`DESCRIPTION`,`JOB_CLASS_NAME`,`IS_DURABLE`,`IS_NONCONCURRENT`,`IS_UPDATE_DATA`,`REQUESTS_RECOVERY`,`JOB_DATA`) values -('clusteredScheduler','TASK_10','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','\0sr\0org.quartz.JobDataMap迩\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap.(v\n\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap`\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~dꂑ \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.DatehjKYt\0\0xpw\0\0kdssxt\0\r0 0 0/0 * * ?sr\0java.lang.Long;̏#\0J\0valuexr\0java.lang.Number \0\0xp\0\0\0\0\0\0\0\nt\0 changeCoupont\0\0q\0~\0sr\0java.lang.Integer⠤8\0I\0valuexq\0~\0\0\0\0\0x\0'), -('clusteredScheduler','TASK_11','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','\0sr\0org.quartz.JobDataMap迩\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap.(v\n\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap`\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~dꂑ \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.DatehjKYt\0\0xpw\0\0kdu0Sxt\0\r0 0 0/1 * * ?sr\0java.lang.Long;̏#\0J\0valuexr\0java.lang.Number \0\0xp\0\0\0\0\0\0\0 t\0deleteCouponUsert\0\0t\0)删除用户失效30天以上的优惠券sr\0java.lang.Integer⠤8\0I\0valuexq\0~\0\0\0\0\0x\0'), -('clusteredScheduler','TASK_12','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','\0sr\0org.quartz.JobDataMap迩\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap.(v\n\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap`\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~dꂑ \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.DatehjKYt\0\0xpw\0\0kduxt\0\r0 0 0/1 * * ?sr\0java.lang.Long;̏#\0J\0valuexr\0java.lang.Number \0\0xp\0\0\0\0\0\0\0 t\0changeCouponUsert\0\0t\02改变用户优惠券的状态(设为失效状态)sr\0java.lang.Integer⠤8\0I\0valuexq\0~\0\0\0\0\0x\0'), -('clusteredScheduler','TASK_13','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','\0sr\0org.quartz.JobDataMap迩\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap.(v\n\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap`\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~dꂑ \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.DatehjKYt\0\0xpw\0\0kdv\nxt\0\r0 0 0/1 * * ?sr\0java.lang.Long;̏#\0J\0valuexr\0java.lang.Number \0\0xp\0\0\0\0\0\0\0\rt\0 putOnCoupont\0\0t\0投放优惠券sr\0java.lang.Integer⠤8\0I\0valuexq\0~\0\0\0\0\0x\0'); +('clusteredScheduler','TASK_10','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ� \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.Datehj�KYt\0\0xpw\0\0kds�sxt\0\r0 0 0/0 * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number��� ���\0\0xp\0\0\0\0\0\0\0\nt\0 changeCoupont\0\0q\0~\0sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'), +('clusteredScheduler','TASK_11','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ� \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.Datehj�KYt\0\0xpw\0\0kdu0Sxt\0\r0 0 0/1 * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number��� ���\0\0xp\0\0\0\0\0\0\0 t\0deleteCouponUsert\0\0t\0)删除用户失效30天以上的优惠券sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'), +('clusteredScheduler','TASK_12','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ� \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.Datehj�KYt\0\0xpw\0\0kdu��xt\0\r0 0 0/1 * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number��� ���\0\0xp\0\0\0\0\0\0\0 t\0changeCouponUsert\0\0t\02改变用户优惠券的状态(设为失效状态)sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'), +('clusteredScheduler','TASK_13','DEFAULT',NULL,'com.yami.shop.quartz.config.QuartzJob','0','1','0','0','��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ� \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTasksr\0java.util.Datehj�KYt\0\0xpw\0\0kdv\n�xt\0\r0 0 0/1 * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number��� ���\0\0xp\0\0\0\0\0\0\0\rt\0 putOnCoupont\0\0t\0投放优惠券sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'); /*Table structure for table `qrtz_locks` */ @@ -247,7 +250,7 @@ CREATE TABLE `qrtz_triggers` ( /*Data for the table `qrtz_triggers` */ insert into `qrtz_triggers`(`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`JOB_NAME`,`JOB_GROUP`,`DESCRIPTION`,`NEXT_FIRE_TIME`,`PREV_FIRE_TIME`,`PRIORITY`,`TRIGGER_STATE`,`TRIGGER_TYPE`,`START_TIME`,`END_TIME`,`CALENDAR_NAME`,`MISFIRE_INSTR`,`JOB_DATA`) values -('clusteredScheduler','TASK_10','DEFAULT','TASK_10','DEFAULT',NULL,1561359600000,1561356000000,5,'PAUSED','CRON',1560758441000,0,NULL,1,'\0sr\0org.quartz.JobDataMap迩\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap.(v\n\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap`\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~dꂑ \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTaskpt\0\r0 0 0/1 * * ?sr\0java.lang.Long;̏#\0J\0valuexr\0java.lang.Number \0\0xp\0\0\0\0\0\0\0\nt\0 changeCoupont\0\0q\0~\0sr\0java.lang.Integer⠤8\0I\0valuexq\0~\0\0\0\0\0x\0'), +('clusteredScheduler','TASK_10','DEFAULT','TASK_10','DEFAULT',NULL,1561359600000,1561356000000,5,'PAUSED','CRON',1560758441000,0,NULL,1,'��\0sr\0org.quartz.JobDataMap���迩��\0\0xr\0&org.quartz.utils.StringKeyDirtyFlagMap�����](\0Z\0allowsTransientDataxr\0org.quartz.utils.DirtyFlagMap�.�(v\n�\0Z\0dirtyL\0mapt\0Ljava/util/Map;xpsr\0java.util.HashMap���`�\0F\0\nloadFactorI\0 thresholdxp?@\0\0\0\0\0 w\0\0\0\0\0\0t\0\rJOB_PARAM_KEYsr\0&com.yami.shop.quartz.model.ScheduleJob~�dꂑ� \0L\0beanNamet\0Ljava/lang/String;L\0\ncreateTimet\0Ljava/util/Date;L\0cronExpressionq\0~\0 L\0jobIdt\0Ljava/lang/Long;L\0\nmethodNameq\0~\0 L\0paramsq\0~\0 L\0remarkq\0~\0 L\0statust\0Ljava/lang/Integer;xpt\0\ncouponTaskpt\0\r0 0 0/1 * * ?sr\0java.lang.Long;��̏#�\0J\0valuexr\0java.lang.Number��� ���\0\0xp\0\0\0\0\0\0\0\nt\0 changeCoupont\0\0q\0~\0sr\0java.lang.Integer⠤���8\0I\0valuexq\0~\0\0\0\0\0x\0'), ('clusteredScheduler','TASK_11','DEFAULT','TASK_11','DEFAULT',NULL,1561359600000,1561356000000,5,'PAUSED','CRON',1560758530000,0,NULL,1,''), ('clusteredScheduler','TASK_12','DEFAULT','TASK_12','DEFAULT',NULL,1561359600000,1561356000000,5,'PAUSED','CRON',1560758564000,0,NULL,1,''), ('clusteredScheduler','TASK_13','DEFAULT','TASK_13','DEFAULT',NULL,1561359600000,1561356000000,5,'PAUSED','CRON',1560758586000,0,NULL,1,''); diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..de2f9ef --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,55 @@ +version: '3' +services: + mall4j-mysql: + build: + context: ./ + dockerfile: ./db/Dockerfile + environment: + MYSQL_ROOT_PASSWORD: root + restart: always + container_name: mall4j-mysql + image: mall4j-mysql + ports: + - 3306:3306 + volumes: + - ./mall4j-mysql:/var/lib/mysql + command: --lower_case_table_names=1 + + mall4j-redis: + image: redis:5.0.4 + restart: always + container_name: mall4j-redis + ports: + - 6379:6379 + + mall4j-admin: + build: + context: ./ + dockerfile: ./yami-shop-admin/Dockerfile + restart: always + container_name: mall4j-admin + image: mall4j-admin + ports: + - 8085:8085 + depends_on: + - mall4j-redis + - mall4j-mysql + links: + - "mall4j-redis" + - "mall4j-mysql" + + mall4j-api: + build: + context: ./ + dockerfile: ./yami-shop-api/Dockerfile + restart: always + container_name: mall4j-api + image: mall4j-api + ports: + - 8086:8086 + depends_on: + - mall4j-redis + - mall4j-mysql + links: + - "mall4j-redis" + - "mall4j-mysql" \ No newline at end of file diff --git a/yami-shop-admin/Dockerfile b/yami-shop-admin/Dockerfile new file mode 100644 index 0000000..6e6666d --- /dev/null +++ b/yami-shop-admin/Dockerfile @@ -0,0 +1,15 @@ +FROM anapsix/alpine-java:8_server-jre_unlimited + +MAINTAINER opgames(opgames.cn@gmail.com) + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +RUN mkdir -p /opt/projects/mall4j + +WORKDIR /opt/projects/mall4j + +ADD ./yami-shop-admin/target/yami-shop-admin-0.0.1-SNAPSHOT.jar ./ + +EXPOSE 8085 + +CMD java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms512m -Xmx512m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=docker,quartz yami-shop-admin-0.0.1-SNAPSHOT.jar \ No newline at end of file diff --git a/yami-shop-admin/src/main/resources/application-docker.yml b/yami-shop-admin/src/main/resources/application-docker.yml new file mode 100644 index 0000000..b60c967 --- /dev/null +++ b/yami-shop-admin/src/main/resources/application-docker.yml @@ -0,0 +1,20 @@ +server: + port: 8085 +spring: + datasource: + url: jdbc:mysql://mall4j-mysql:3306/yami_shops?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true + username: root + password: root + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 0 + maximum-pool-size: 20 + idle-timeout: 25000 + auto-commit: true + connection-test-query: SELECT 1 + redis: + redisson: + config: classpath:redisson-docker.yml +logging: + config: classpath:log4j2_prod.xml \ No newline at end of file diff --git a/yami-shop-admin/src/main/resources/application-prod.yml b/yami-shop-admin/src/main/resources/application-prod.yml index b52534a..a12a95c 100644 --- a/yami-shop-admin/src/main/resources/application-prod.yml +++ b/yami-shop-admin/src/main/resources/application-prod.yml @@ -15,6 +15,6 @@ spring: connection-test-query: SELECT 1 redis: redisson: - config: classpath:redisson.yml + config: classpath:redisson-docker.yml logging: config: classpath:log4j2_prod.xml \ No newline at end of file diff --git a/yami-shop-admin/src/main/resources/redisson-docker.yml b/yami-shop-admin/src/main/resources/redisson-docker.yml new file mode 100644 index 0000000..e4b470a --- /dev/null +++ b/yami-shop-admin/src/main/resources/redisson-docker.yml @@ -0,0 +1,31 @@ +# 单节点设置 +singleServerConfig: + address: redis://mall4j-redis:6379 + database: 0 + password: null + idleConnectionTimeout: 10000 + pingTimeout: 1000 + connectTimeout: 10000 + timeout: 3000 + retryAttempts: 3 + retryInterval: 1500 + reconnectionTimeout: 3000 + failedAttempts: 3 + clientName: null + # 发布和订阅连接的最小空闲连接数 默认1 + subscriptionConnectionMinimumIdleSize: 1 + # 发布和订阅连接池大小 默认50 + subscriptionConnectionPoolSize: 10 + # 单个连接最大订阅数量 默认5 + subscriptionsPerConnection: 5 + # 最小空闲连接数 默认32,现在暂时不需要那么多的线程 + connectionMinimumIdleSize: 4 + # connectionPoolSize 默认64,现在暂时不需要那么多的线程 + connectionPoolSize: 20 +# 这个线程池数量被所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务共同共享。 +threads: 0 +# 这个线程池数量是在一个Redisson实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。 +nettyThreads: 0 +codec: + class: com.yami.shop.common.serializer.redisson.FstCodec +transportMode: NIO \ No newline at end of file diff --git a/yami-shop-admin/src/main/resources/redisson.yml b/yami-shop-admin/src/main/resources/redisson.yml index 1c8989e..e4b470a 100644 --- a/yami-shop-admin/src/main/resources/redisson.yml +++ b/yami-shop-admin/src/main/resources/redisson.yml @@ -1,6 +1,6 @@ # 单节点设置 singleServerConfig: - address: redis://127.0.0.1:6379 + address: redis://mall4j-redis:6379 database: 0 password: null idleConnectionTimeout: 10000 diff --git a/yami-shop-api/Dockerfile b/yami-shop-api/Dockerfile new file mode 100644 index 0000000..112af22 --- /dev/null +++ b/yami-shop-api/Dockerfile @@ -0,0 +1,15 @@ +FROM anapsix/alpine-java:8_server-jre_unlimited + +MAINTAINER opgames(opgames.cn@gmail.com) + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +RUN mkdir -p /opt/projects/mall4j + +WORKDIR /opt/projects/mall4j + +EXPOSE 8086 + +ADD ./yami-shop-api/target/yami-shop-api-0.0.1-SNAPSHOT.jar ./ + +CMD java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=docker yami-shop-api-0.0.1-SNAPSHOT.jar \ No newline at end of file diff --git a/yami-shop-api/src/main/resources/application-docker.yml b/yami-shop-api/src/main/resources/application-docker.yml new file mode 100644 index 0000000..46e4866 --- /dev/null +++ b/yami-shop-api/src/main/resources/application-docker.yml @@ -0,0 +1,21 @@ +server: + port: 8086 + undertow: + worker-threads: 200 + +spring: + datasource: + url: jdbc:mysql://mall4j-mysql:3306/yami_shops?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true + username: root + password: root + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 0 + maximum-pool-size: 20 + connection-test-query: select 1 + redis: + redisson: + config: classpath:redisson-docker.yml +logging: + config: classpath:log4j2_prod.xml \ No newline at end of file diff --git a/yami-shop-api/src/main/resources/redisson-docker.yml b/yami-shop-api/src/main/resources/redisson-docker.yml new file mode 100644 index 0000000..e4b470a --- /dev/null +++ b/yami-shop-api/src/main/resources/redisson-docker.yml @@ -0,0 +1,31 @@ +# 单节点设置 +singleServerConfig: + address: redis://mall4j-redis:6379 + database: 0 + password: null + idleConnectionTimeout: 10000 + pingTimeout: 1000 + connectTimeout: 10000 + timeout: 3000 + retryAttempts: 3 + retryInterval: 1500 + reconnectionTimeout: 3000 + failedAttempts: 3 + clientName: null + # 发布和订阅连接的最小空闲连接数 默认1 + subscriptionConnectionMinimumIdleSize: 1 + # 发布和订阅连接池大小 默认50 + subscriptionConnectionPoolSize: 10 + # 单个连接最大订阅数量 默认5 + subscriptionsPerConnection: 5 + # 最小空闲连接数 默认32,现在暂时不需要那么多的线程 + connectionMinimumIdleSize: 4 + # connectionPoolSize 默认64,现在暂时不需要那么多的线程 + connectionPoolSize: 20 +# 这个线程池数量被所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务共同共享。 +threads: 0 +# 这个线程池数量是在一个Redisson实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。 +nettyThreads: 0 +codec: + class: com.yami.shop.common.serializer.redisson.FstCodec +transportMode: NIO \ No newline at end of file